Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
2
2021-129
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
2021-129
2021-129
Commits
159a0f3e
Commit
159a0f3e
authored
Aug 09, 2021
by
samesh97
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
initializing photo editor other features.
parent
f38769e7
Changes
29
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
2801 additions
and
192 deletions
+2801
-192
app/build.gradle
app/build.gradle
+7
-0
app/src/main/java/com/app/smartphotoeditor/activities/AddEffects.java
.../java/com/app/smartphotoeditor/activities/AddEffects.java
+13
-77
app/src/main/java/com/app/smartphotoeditor/adapters/AlbumAdapter.java
.../java/com/app/smartphotoeditor/adapters/AlbumAdapter.java
+119
-0
app/src/main/java/com/app/smartphotoeditor/adapters/FilterAdapter.java
...java/com/app/smartphotoeditor/adapters/FilterAdapter.java
+183
-0
app/src/main/java/com/app/smartphotoeditor/adapters/GridViewAdapter.java
...va/com/app/smartphotoeditor/adapters/GridViewAdapter.java
+178
-0
app/src/main/java/com/app/smartphotoeditor/adapters/ImageAdapter.java
.../java/com/app/smartphotoeditor/adapters/ImageAdapter.java
+4
-115
app/src/main/java/com/app/smartphotoeditor/adapters/ImageViewPlusColorAdapter.java
.../smartphotoeditor/adapters/ImageViewPlusColorAdapter.java
+156
-0
app/src/main/java/com/app/smartphotoeditor/adapters/RecentImageAdapter.java
...com/app/smartphotoeditor/adapters/RecentImageAdapter.java
+214
-0
app/src/main/java/com/app/smartphotoeditor/adapters/ShadowColorAdapter.java
...com/app/smartphotoeditor/adapters/ShadowColorAdapter.java
+158
-0
app/src/main/java/com/app/smartphotoeditor/adapters/StickerAdapter.java
...ava/com/app/smartphotoeditor/adapters/StickerAdapter.java
+62
-0
app/src/main/java/com/app/smartphotoeditor/adapters/StickerViewPagerAdapter.java
...pp/smartphotoeditor/adapters/StickerViewPagerAdapter.java
+44
-0
app/src/main/java/com/app/smartphotoeditor/adapters/TextColorAdapter.java
...a/com/app/smartphotoeditor/adapters/TextColorAdapter.java
+156
-0
app/src/main/java/com/app/smartphotoeditor/adapters/TextFontAdapter.java
...va/com/app/smartphotoeditor/adapters/TextFontAdapter.java
+257
-0
app/src/main/java/com/app/smartphotoeditor/adapters/WalkthroughPagerAdapter.java
...pp/smartphotoeditor/adapters/WalkthroughPagerAdapter.java
+82
-0
app/src/main/java/com/app/smartphotoeditor/asynctask/AddImageToArrayListAsyncTask.java
...rtphotoeditor/asynctask/AddImageToArrayListAsyncTask.java
+47
-0
app/src/main/java/com/app/smartphotoeditor/database/DatabaseHelper.java
...ava/com/app/smartphotoeditor/database/DatabaseHelper.java
+178
-0
app/src/main/java/com/app/smartphotoeditor/listeners/OnAFileAddedListner.java
...m/app/smartphotoeditor/listeners/OnAFileAddedListner.java
+9
-0
app/src/main/java/com/app/smartphotoeditor/listeners/OnAsyncTaskState.java
.../com/app/smartphotoeditor/listeners/OnAsyncTaskState.java
+6
-0
app/src/main/java/com/app/smartphotoeditor/listeners/OnAuthenticationState.java
...app/smartphotoeditor/listeners/OnAuthenticationState.java
+7
-0
app/src/main/java/com/app/smartphotoeditor/listeners/OnBitmapChanged.java
...a/com/app/smartphotoeditor/listeners/OnBitmapChanged.java
+10
-0
app/src/main/java/com/app/smartphotoeditor/listeners/OnFirebaseStickerChangedListener.java
...otoeditor/listeners/OnFirebaseStickerChangedListener.java
+7
-0
app/src/main/java/com/app/smartphotoeditor/listeners/OnItemClickListner.java
...om/app/smartphotoeditor/listeners/OnItemClickListner.java
+8
-0
app/src/main/java/com/app/smartphotoeditor/listeners/OnTextAttributesChangedListner.java
...photoeditor/listeners/OnTextAttributesChangedListner.java
+10
-0
app/src/main/res/layout/activity_add_effects.xml
app/src/main/res/layout/activity_add_effects.xml
+203
-0
app/src/main/res/layout/activity_add_sticker_on_image.xml
app/src/main/res/layout/activity_add_sticker_on_image.xml
+188
-0
app/src/main/res/layout/activity_adjust_image.xml
app/src/main/res/layout/activity_adjust_image.xml
+161
-0
app/src/main/res/layout/activity_draw_on_bitmap.xml
app/src/main/res/layout/activity_draw_on_bitmap.xml
+178
-0
app/src/main/res/layout/activity_image_saving.xml
app/src/main/res/layout/activity_image_saving.xml
+113
-0
app/src/main/res/layout/filter_row.xml
app/src/main/res/layout/filter_row.xml
+43
-0
No files found.
app/build.gradle
View file @
159a0f3e
...
...
@@ -72,6 +72,13 @@ dependencies {
//Ui
implementation
"com.airbnb.android:lottie:3.7.0"
implementation
'com.github.QuadFlask:colorpicker:0.0.13'
implementation
'org.jsoup:jsoup:1.8.3'
implementation
'com.github.warkiz.tickseekbar:tickseekbar:0.1.4'
implementation
'net.alhazmy13.ImageFilters:library:0.1.2-beta'
implementation
'de.hdodenhof:circleimageview:3.1.0'
implementation
'info.androidhive:imagefilters:1.0.7'
testImplementation
'junit:junit:4.+'
androidTestImplementation
'androidx.test.ext:junit:1.1.2'
androidTestImplementation
'androidx.test.espresso:espresso-core:3.3.0'
...
...
app/src/main/java/com/app/smartphotoeditor/activities/AddEffects.java
View file @
159a0f3e
...
...
@@ -19,21 +19,15 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.app.smartphotoeditor.R
;
import
com.app.smartphotoeditor.adapters.FilterAdapter
;
import
com.app.smartphotoeditor.asynctask.AddImageToArrayListAsyncTask
;
import
com.app.smartphotoeditor.config.ImageList
;
import
com.app.smartphotoeditor.database.DatabaseHelper
;
import
com.app.smartphotoeditor.listeners.OnAsyncTaskState
;
import
com.app.smartphotoeditor.listeners.OnBitmapChanged
;
import
com.app.smartphotoeditor.sdk.Methods
;
import
com.bumptech.glide.Glide
;
import
com.google.android.gms.ads.AdRequest
;
import
com.google.android.gms.ads.AdView
;
import
com.google.android.gms.ads.InterstitialAd
;
import
com.google.android.gms.ads.MobileAds
;
import
com.google.android.gms.ads.initialization.InitializationStatus
;
import
com.google.android.gms.ads.initialization.OnInitializationCompleteListener
;
import
com.sba.sinhalaphotoeditor.R
;
import
com.sba.sinhalaphotoeditor.adapters.FilterAdapter
;
import
com.sba.sinhalaphotoeditor.aynctask.AddImageToArrayListAsyncTask
;
import
com.sba.sinhalaphotoeditor.callbacks.OnAsyncTaskState
;
import
com.sba.sinhalaphotoeditor.callbacks.OnBitmapChanged
;
import
com.sba.sinhalaphotoeditor.database.DatabaseHelper
;
import
com.sba.sinhalaphotoeditor.sdk.Methods
;
import
com.sba.sinhalaphotoeditor.singleton.ImageList
;
import
com.warkiz.tickseekbar.OnSeekChangeListener
;
import
com.warkiz.tickseekbar.SeekParams
;
import
com.warkiz.tickseekbar.TickSeekBar
;
...
...
@@ -43,15 +37,12 @@ import com.zomato.photofilters.imageprocessors.subfilters.BrightnessSubFilter;
import
com.zomato.photofilters.imageprocessors.subfilters.SaturationSubfilter
;
import
com.zomato.photofilters.imageprocessors.subfilters.VignetteSubfilter
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Locale
;
import
static
com
.
sba
.
sinhalaphotoeditor
.
config
.
Constants
.
LANGUAGE_KEY
;
import
static
com
.
sba
.
sinhalaphotoeditor
.
config
.
Constants
.
LANGUAGE_SINHALA
;
import
static
com
.
sba
.
sinhalaphotoeditor
.
config
.
Constants
.
SHARED_PREF_NAME
;
public
class
AddEffects
extends
AppCompatActivity
implements
OnBitmapChanged
,
OnAsyncTaskState
{
...
...
@@ -63,7 +54,6 @@ public class AddEffects extends AppCompatActivity implements OnBitmapChanged, On
private
Bitmap
currentEditingBitmap
;
private
ImageView
userSelectedImage
;
private
InterstitialAd
mInterstitialAd
;
private
DatabaseHelper
helper
=
new
DatabaseHelper
(
AddEffects
.
this
);
private
FilterAdapter
filterAdapter
;
private
ProgressBar
progress_bar
;
...
...
@@ -86,12 +76,7 @@ public class AddEffects extends AppCompatActivity implements OnBitmapChanged, On
@Override
public
void
onBackPressed
()
{
if
(
mInterstitialAd
.
isLoaded
())
{
mInterstitialAd
.
show
();
}
else
{
if
(
subFiltersLayout
.
getVisibility
()
==
View
.
VISIBLE
)
{
...
...
@@ -100,10 +85,9 @@ public class AddEffects extends AppCompatActivity implements OnBitmapChanged, On
else
{
super
.
onBackPressed
();
overridePendingTransition
(
R
.
anim
.
activity_start_animation__for_tools
,
R
.
anim
.
activity_exit_animation__for_tools
);
}
}
}
...
...
@@ -113,43 +97,13 @@ public class AddEffects extends AppCompatActivity implements OnBitmapChanged, On
getMenuInflater
().
inflate
(
R
.
menu
.
photo_on_photo_menu
,
menu
);
return
true
;
}
@Override
protected
void
attachBaseContext
(
Context
newBase
)
{
SharedPreferences
pref
=
newBase
.
getSharedPreferences
(
SHARED_PREF_NAME
,
MODE_PRIVATE
);
String
localeString
=
pref
.
getString
(
LANGUAGE_KEY
,
LANGUAGE_SINHALA
);
Locale
myLocale
=
new
Locale
(
localeString
);
Locale
.
setDefault
(
myLocale
);
Configuration
config
=
newBase
.
getResources
().
getConfiguration
();
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
N
)
{
config
.
setLocale
(
myLocale
);
if
(
Build
.
VERSION
.
SDK_INT
>
Build
.
VERSION_CODES
.
N
){
Context
newContext
=
newBase
.
createConfigurationContext
(
config
);
super
.
attachBaseContext
(
newContext
);
return
;
}
}
else
{
config
.
locale
=
myLocale
;
}
super
.
attachBaseContext
(
newBase
);
getResources
().
updateConfiguration
(
config
,
getResources
().
getDisplayMetrics
());
}
@Override
public
boolean
onOptionsItemSelected
(
MenuItem
item
)
{
if
(
item
.
getItemId
()
==
R
.
id
.
setImage
)
{
if
(
mInterstitialAd
.
isLoaded
())
{
mInterstitialAd
.
show
();
}
else
{
progress_bar
.
setVisibility
(
View
.
VISIBLE
);
mInterstitialAd
.
loadAd
(
new
AdRequest
.
Builder
().
build
());
if
(
filterAdapter
!=
null
)
{
...
...
@@ -172,7 +126,7 @@ public class AddEffects extends AppCompatActivity implements OnBitmapChanged, On
{
startActivityForResult
();
}
}
}
...
...
@@ -211,28 +165,10 @@ public class AddEffects extends AppCompatActivity implements OnBitmapChanged, On
filterRecyclerView
.
setAdapter
(
filterAdapter
);
MobileAds
.
initialize
(
this
,
new
OnInitializationCompleteListener
()
{
@Override
public
void
onInitializationComplete
(
InitializationStatus
initializationStatus
)
{}
});
mInterstitialAd
=
new
InterstitialAd
(
this
);
mInterstitialAd
.
setAdUnitId
(
"ca-app-pub-3538783908730049/5147080745"
);
mInterstitialAd
.
loadAd
(
new
AdRequest
.
Builder
().
build
());
Methods
.
freeUpMemory
();
MobileAds
.
initialize
(
this
,
new
OnInitializationCompleteListener
()
{
@Override
public
void
onInitializationComplete
(
InitializationStatus
initializationStatus
)
{
}
});
AdView
mAdView
=
findViewById
(
R
.
id
.
adView
);
AdRequest
adRequest
=
new
AdRequest
.
Builder
().
build
();
mAdView
.
loadAd
(
adRequest
);
expandIcon
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
...
...
app/src/main/java/com/app/smartphotoeditor/adapters/AlbumAdapter.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.adapters
;
import
android.content.Context
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.TextView
;
import
androidx.annotation.NonNull
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.constraintlayout.widget.ConstraintSet
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.bumptech.glide.Glide
;
import
com.bumptech.glide.request.RequestOptions
;
import
com.sba.sinhalaphotoeditor.R
;
import
com.sba.sinhalaphotoeditor.callbacks.OnAlbumClick
;
import
com.sba.sinhalaphotoeditor.model.AlbumModel
;
import
com.sba.sinhalaphotoeditor.sdk.Methods
;
import
java.util.ArrayList
;
import
de.hdodenhof.circleimageview.CircleImageView
;
public
class
AlbumAdapter
extends
RecyclerView
.
Adapter
<
AlbumAdapter
.
MyViewHolder
>
{
private
Context
context
;
private
ArrayList
<
AlbumModel
>
list
;
private
OnAlbumClick
onAlbumClick
;
public
AlbumAdapter
(
Context
context
,
ArrayList
<
AlbumModel
>
list
,
OnAlbumClick
onAlbumClick
)
{
this
.
context
=
context
;
this
.
list
=
list
;
this
.
onAlbumClick
=
onAlbumClick
;
}
@NonNull
@Override
public
MyViewHolder
onCreateViewHolder
(
@NonNull
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
album_row
,
null
);
return
new
MyViewHolder
(
view
);
}
@Override
public
void
onBindViewHolder
(
@NonNull
MyViewHolder
holder
,
final
int
position
)
{
if
(
list
!=
null
&&
list
.
size
()
>
position
)
{
final
AlbumModel
model
=
list
.
get
(
position
);
Glide
.
with
(
context
)
.
load
(
model
.
getFirstPic
())
.
apply
(
new
RequestOptions
().
centerCrop
())
.
into
(
holder
.
album_pic
);
holder
.
text_view
.
setText
(
String
.
valueOf
(
model
.
getNumberOfPics
()));
holder
.
album_name
.
setText
(
model
.
getFolderName
());
holder
.
album_pic
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
view
)
{
if
(
onAlbumClick
!=
null
)
{
onAlbumClick
.
onAlbumChanged
(
model
.
getPath
(),
position
);
}
}
});
}
}
@Override
public
int
getItemCount
()
{
if
(
list
!=
null
)
return
list
.
size
();
return
0
;
}
public
class
MyViewHolder
extends
RecyclerView
.
ViewHolder
{
CircleImageView
album_pic
,
blacked
;
TextView
text_view
;
TextView
album_name
;
public
MyViewHolder
(
@NonNull
View
itemView
)
{
super
(
itemView
);
album_pic
=
itemView
.
findViewById
(
R
.
id
.
album_pic
);
text_view
=
itemView
.
findViewById
(
R
.
id
.
text_view
);
album_name
=
itemView
.
findViewById
(
R
.
id
.
album_name
);
blacked
=
itemView
.
findViewById
(
R
.
id
.
blacked
);
int
width
=
(
int
)
Methods
.
getDeviceWidthInPX
(
context
);
width
=
width
/
5
;
int
padding
=
12
;
ConstraintLayout
.
LayoutParams
params
=
new
ConstraintLayout
.
LayoutParams
(
width
-
padding
,
width
-
padding
);
album_pic
.
setLayoutParams
(
params
);
blacked
.
setLayoutParams
(
params
);
ConstraintLayout
layout
=
itemView
.
findViewById
(
R
.
id
.
layout
);
ConstraintSet
set
=
new
ConstraintSet
();
set
.
clone
(
layout
);
set
.
connect
(
album_pic
.
getId
(),
ConstraintSet
.
RIGHT
,
layout
.
getId
(),
ConstraintSet
.
RIGHT
,
padding
);
set
.
connect
(
album_pic
.
getId
(),
ConstraintSet
.
LEFT
,
layout
.
getId
(),
ConstraintSet
.
LEFT
,
padding
);
set
.
connect
(
album_pic
.
getId
(),
ConstraintSet
.
TOP
,
layout
.
getId
(),
ConstraintSet
.
TOP
,
padding
);
set
.
connect
(
album_pic
.
getId
(),
ConstraintSet
.
BOTTOM
,
layout
.
getId
(),
ConstraintSet
.
BOTTOM
,
padding
);
set
.
connect
(
blacked
.
getId
(),
ConstraintSet
.
RIGHT
,
layout
.
getId
(),
ConstraintSet
.
RIGHT
,
padding
);
set
.
connect
(
blacked
.
getId
(),
ConstraintSet
.
LEFT
,
layout
.
getId
(),
ConstraintSet
.
LEFT
,
padding
);
set
.
connect
(
blacked
.
getId
(),
ConstraintSet
.
TOP
,
layout
.
getId
(),
ConstraintSet
.
TOP
,
padding
);
set
.
connect
(
blacked
.
getId
(),
ConstraintSet
.
BOTTOM
,
layout
.
getId
(),
ConstraintSet
.
BOTTOM
,
padding
);
set
.
applyTo
(
layout
);
}
}
}
app/src/main/java/com/app/smartphotoeditor/adapters/FilterAdapter.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.adapters
;
import
android.app.Activity
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.graphics.Color
;
import
android.os.AsyncTask
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.ProgressBar
;
import
android.widget.TextView
;
import
androidx.annotation.NonNull
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.app.smartphotoeditor.R
;
import
com.app.smartphotoeditor.config.ImageList
;
import
com.app.smartphotoeditor.listeners.OnBitmapChanged
;
import
com.app.smartphotoeditor.sdk.Methods
;
import
com.bumptech.glide.Glide
;
import
com.zomato.photofilters.imageprocessors.Filter
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Set
;
import
de.hdodenhof.circleimageview.CircleImageView
;
public
class
FilterAdapter
extends
RecyclerView
.
Adapter
<
FilterAdapter
.
FilterViewHolder
>
{
private
Context
context
;
private
List
<
Filter
>
filters
;
private
int
previousPosition
=
-
99
;
private
OnBitmapChanged
listner
;
private
Bitmap
currentBitmap
=
null
;
private
HashMap
<
Integer
,
CircleImageView
>
circleImageList
;
private
Bitmap
croppedBitmap
=
null
;
private
ProgressBar
progressBar
;
public
FilterAdapter
(
Context
context
,
List
<
Filter
>
filters
,
OnBitmapChanged
listner
,
ProgressBar
progressBar
)
{
this
.
context
=
context
;
this
.
filters
=
filters
;
this
.
listner
=
listner
;
circleImageList
=
new
HashMap
<>();
this
.
progressBar
=
progressBar
;
}
@NonNull
@Override
public
FilterViewHolder
onCreateViewHolder
(
@NonNull
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
filter_row
,
null
);
return
new
FilterViewHolder
(
view
);
}
@Override
public
void
onBindViewHolder
(
@NonNull
final
FilterViewHolder
holder
,
final
int
position
)
{
if
(
filters
!=
null
)
{
AsyncTask
.
execute
(
new
Runnable
()
{
@Override
public
void
run
()
{
if
(
croppedBitmap
==
null
)
{
croppedBitmap
=
Methods
.
resize
(
ImageList
.
getInstance
().
getCurrentBitmap
(),
100
,
100
);
}
Bitmap
bitmap
=
croppedBitmap
.
copy
(
croppedBitmap
.
getConfig
(),
true
);
final
Bitmap
filtered
=
filters
.
get
(
position
).
processFilter
(
bitmap
);
((
Activity
)
context
).
runOnUiThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
Glide
.
with
(
context
).
load
(
filtered
).
into
(
holder
.
previewImage
);
}
});
}
});
String
name
=
filters
.
get
(
position
).
getName
();
if
(
name
!=
null
)
{
holder
.
filterName
.
setText
(
name
);
}
holder
.
itemView
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
previousPosition
!=
position
)
{
if
(
progressBar
!=
null
)
{
progressBar
.
setVisibility
(
View
.
VISIBLE
);
}
AsyncTask
.
execute
(
new
Runnable
()
{
@Override
public
void
run
()
{
currentBitmap
=
ImageList
.
getInstance
().
getCurrentBitmap
().
copy
(
ImageList
.
getInstance
().
getCurrentBitmap
().
getConfig
(),
true
);
Bitmap
largeBitmap
=
filters
.
get
(
position
).
processFilter
(
currentBitmap
);
listner
.
bitmapChanged
(
largeBitmap
,
filters
.
get
(
position
));
}
});
previousPosition
=
position
;
Set
<
Integer
>
keys
=
circleImageList
.
keySet
();
for
(
Integer
key
:
keys
)
{
if
(
position
==
key
)
{
circleImageList
.
get
(
key
).
setAlpha
(
1
f
);
circleImageList
.
get
(
key
).
setBorderWidth
(
4
);
circleImageList
.
get
(
key
).
setBorderColor
(
Color
.
WHITE
);
circleImageList
.
get
(
key
).
animate
().
scaleX
(
1.08f
).
scaleY
(
1.08f
).
start
();
}
else
{
circleImageList
.
get
(
key
).
animate
().
scaleX
(
1
f
).
scaleY
(
1
f
).
start
();
circleImageList
.
get
(
key
).
setAlpha
(
0.7f
);
circleImageList
.
get
(
key
).
setBorderWidth
(
2
);
circleImageList
.
get
(
key
).
setBorderColor
(
Color
.
WHITE
);
}
}
}
}
});
}
circleImageList
.
put
(
position
,
holder
.
previewImage
);
}
@Override
public
int
getItemCount
()
{
if
(
filters
!=
null
)
{
return
filters
.
size
();
}
return
0
;
}
public
class
FilterViewHolder
extends
RecyclerView
.
ViewHolder
{
CircleImageView
previewImage
;
TextView
filterName
;
public
FilterViewHolder
(
@NonNull
View
itemView
)
{
super
(
itemView
);
previewImage
=
itemView
.
findViewById
(
R
.
id
.
filter_preview
);
filterName
=
itemView
.
findViewById
(
R
.
id
.
filter_name
);
}
}
public
int
returnPrevoiusPositin
()
{
return
previousPosition
;
}
}
app/src/main/java/com/app/smartphotoeditor/adapters/GridViewAdapter.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.adapters
;
import
android.content.Context
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.ImageView
;
import
androidx.annotation.NonNull
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.bumptech.glide.Glide
;
import
com.sba.sinhalaphotoeditor.R
;
import
com.sba.sinhalaphotoeditor.activities.MyCustomGallery
;
import
com.sba.sinhalaphotoeditor.callbacks.OnItemClickListner
;
import
com.sba.sinhalaphotoeditor.model.GalleryImage
;
import
com.sba.sinhalaphotoeditor.sdk.Methods
;
import
java.io.File
;
import
java.util.ArrayList
;
public
class
GridViewAdapter
extends
RecyclerView
.
Adapter
<
GridViewAdapter
.
MyViewHolder
>
{
private
Context
context
;
private
ArrayList
<
GalleryImage
>
images
;
public
static
final
int
numberOfImagesInARow
=
3
;
private
OnItemClickListner
listner
;
public
GridViewAdapter
(
Context
context
,
ArrayList
<
GalleryImage
>
images
,
OnItemClickListner
listner
)
{
this
.
context
=
context
;
this
.
images
=
images
;
this
.
listner
=
listner
;
}
public
void
setContext
(
Context
context
)
{
this
.
context
=
context
;
}
@NonNull
@Override
public
MyViewHolder
onCreateViewHolder
(
@NonNull
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
custom_gallery_row
,
parent
,
false
);
view
.
setLayoutParams
(
new
ConstraintLayout
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
(
int
)
(
Methods
.
getDeviceHeightInPX
(
context
)
/
5
)));
return
new
MyViewHolder
(
view
);
}
@Override
public
void
onBindViewHolder
(
@NonNull
MyViewHolder
holder
,
final
int
position
)
{
if
(
images
.
size
()
>
(
position
*
numberOfImagesInARow
)
&&
images
.
get
(
position
*
numberOfImagesInARow
).
getFile
()
!=
null
)
{
Glide
.
with
(
context
)
.
load
(
images
.
get
(
position
*
numberOfImagesInARow
).
getFile
())
.
placeholder
(
R
.
drawable
.
loading_image_placeholder
)
.
error
(
R
.
drawable
.
loading_image_placeholder
)
.
into
(
holder
.
imgView
);
holder
.
imgView
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
showSelectView
(
images
.
get
(
position
*
numberOfImagesInARow
).
getFile
());
}
});
}
else
{
holder
.
imgView
.
setImageBitmap
(
null
);
holder
.
imgView
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
showSelectView
(
null
);
}
});
}
if
(
images
.
size
()
>
((
position
*
numberOfImagesInARow
)
+
1
)
&&
images
.
get
(((
position
*
numberOfImagesInARow
)
+
1
)).
getFile
()
!=
null
)
{
Glide
.
with
(
context
)
.
load
(
images
.
get
(((
position
*
numberOfImagesInARow
)
+
1
)).
getFile
())
.
placeholder
(
R
.
drawable
.
loading_image_placeholder
)
.
error
(
R
.
drawable
.
loading_image_placeholder
)
.
into
(
holder
.
imgView2
);
holder
.
imgView2
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
showSelectView
(
images
.
get
(((
position
*
numberOfImagesInARow
)
+
1
)).
getFile
());
}
});
}
else
{
holder
.
imgView2
.
setImageBitmap
(
null
);
holder
.
imgView2
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
showSelectView
(
null
);
}
});
}
if
(
images
.
size
()
>
((
position
*
numberOfImagesInARow
)
+
2
)
&&
images
.
get
(((
position
*
numberOfImagesInARow
)
+
2
)).
getFile
()
!=
null
)
{
Glide
.
with
(
context
)
.
load
(
images
.
get
(((
position
*
numberOfImagesInARow
)
+
2
)).
getFile
())
.
placeholder
(
R
.
drawable
.
loading_image_placeholder
)
.
error
(
R
.
drawable
.
loading_image_placeholder
)
.
into
(
holder
.
imgView3
);
holder
.
imgView3
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
showSelectView
(
images
.
get
(((
position
*
numberOfImagesInARow
)
+
2
)).
getFile
());
}
});
}
else
{
holder
.
imgView3
.
setImageBitmap
(
null
);
holder
.
imgView3
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
showSelectView
(
null
);
}
});
}
}
@Override
public
int
getItemCount
()
{
if
(
images
.
size
()
%
numberOfImagesInARow
==
0
)
{
return
(
images
.
size
()
/
numberOfImagesInARow
);
}
else
{
return
(
images
.
size
()
/
numberOfImagesInARow
)
+
1
;
}
}
public
class
MyViewHolder
extends
RecyclerView
.
ViewHolder
{
private
ImageView
imgView
;
private
ImageView
imgView2
;
private
ImageView
imgView3
;
public
MyViewHolder
(
@NonNull
View
itemView
)
{
super
(
itemView
);
imgView
=
itemView
.
findViewById
(
R
.
id
.
image
);
imgView2
=
itemView
.
findViewById
(
R
.
id
.
image2
);
imgView3
=
itemView
.
findViewById
(
R
.
id
.
image3
);
}
}
private
void
showSelectView
(
File
file
)
{
if
(
file
==
null
)
{
return
;
}
listner
.
onClicked
(
file
);
MyCustomGallery
.
selectedBitmap
=
Methods
.
getBitmap
(
file
.
getAbsolutePath
());
}
}
app/src/main/java/com/app/smartphotoeditor/adapters/ImageAdapter.java
View file @
159a0f3e
package
com.app.smartphotoeditor.adapters
;
import
android.content.Context
;
import
android.graphics.Color
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.ImageView
;
import
android.widget.Toast
;
import
androidx.annotation.NonNull
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.constraintlayout.widget.ConstraintSet
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.app.smartphotoeditor.R
;
import
com.app.smartphotoeditor.listeners.OnAlbumClick
;
import
com.app.smartphotoeditor.models.pictureFacer
;
import
com.app.smartphotoeditor.sdk.Methods
;
import
com.bumptech.glide.Glide
;
import
com.bumptech.glide.request.RequestOptions
;
import
com.sba.sinhalaphotoeditor.R
;
import
com.sba.sinhalaphotoeditor.callbacks.OnAlbumClick
;
import
com.sba.sinhalaphotoeditor.model.pictureFacer
;
import
com.sba.sinhalaphotoeditor.sdk.Methods
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.Timer
;
import
java.util.TimerTask
;
import
java.util.logging.Handler
;
public
class
ImageAdapter
extends
RecyclerView
.
Adapter
<
ImageAdapter
.
MyViewHolder
>
{
...
...
@@ -35,14 +27,6 @@ public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.MyViewHolder
private
ArrayList
<
pictureFacer
>
list
;
private
OnAlbumClick
onAlbumClick
;
private
int
selectedItem
=
0
;
private
static
final
int
MAX_TIME
=
2
;
private
int
count
=
MAX_TIME
;
private
ArrayList
<
View
>
viewItemList
=
new
ArrayList
<>();
public
ImageAdapter
(
Context
context
,
ArrayList
<
pictureFacer
>
list
,
OnAlbumClick
onAlbumClick
)
{
this
.
context
=
context
;
...
...
@@ -79,25 +63,6 @@ public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.MyViewHolder
}
}
});
if
(
viewItemList
.
size
()
>
position
)
{
viewItemList
.
add
(
position
,
holder
.
itemView
);
}
else
{
viewItemList
.
add
(
holder
.
itemView
);
}
if
(
selectedItem
==
position
)
{
holder
.
layout
.
setBackgroundColor
(
Color
.
RED
);
}
else
{
holder
.
layout
.
setBackgroundColor
(
Color
.
TRANSPARENT
);
}
}
}
@Override
...
...
@@ -112,13 +77,10 @@ public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.MyViewHolder
public
class
MyViewHolder
extends
RecyclerView
.
ViewHolder
{
ImageView
image_pic
;
ConstraintLayout
layout
;
public
MyViewHolder
(
@NonNull
View
itemView
)
{
super
(
itemView
);
image_pic
=
itemView
.
findViewById
(
R
.
id
.
image_pic
);
layout
=
itemView
.
findViewById
(
R
.
id
.
layout
);
int
width
=
(
int
)
Methods
.
getDeviceWidthInPX
(
context
);
width
=
width
/
4
;
...
...
@@ -137,77 +99,4 @@ public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.MyViewHolder
}
}
public
void
scrollLeft
()
{
count
--;
if
(
count
<=
0
)
count
=
MAX_TIME
;
else
return
;
if
(
selectedItem
%
4
!=
0
)
{
notifyItemChanged
(
this
.
selectedItem
);
this
.
selectedItem
-=
1
;
notifyItemChanged
(
this
.
selectedItem
);
}
}
public
void
scrollRight
()
{
count
--;
if
(
count
<=
0
)
count
=
MAX_TIME
;
else
return
;
if
((
selectedItem
+
1
)
%
4
!=
0
)
{
notifyItemChanged
(
this
.
selectedItem
);
this
.
selectedItem
+=
1
;
notifyItemChanged
(
this
.
selectedItem
);
}
}
public
void
scrollTop
()
{
count
--;
if
(
count
<=
0
)
count
=
MAX_TIME
;
else
return
;
if
(
selectedItem
-
4
>=
0
)
{
notifyItemChanged
(
this
.
selectedItem
);
this
.
selectedItem
-=
4
;
notifyItemChanged
(
this
.
selectedItem
);
}
}
public
void
scrollBottom
()
{
count
--;
if
(
count
<=
0
)
count
=
MAX_TIME
;
else
return
;
notifyItemChanged
(
this
.
selectedItem
);
this
.
selectedItem
+=
4
;
notifyItemChanged
(
this
.
selectedItem
);
}
public
void
selectedItem
(
int
pos
)
{
notifyItemChanged
(
this
.
selectedItem
);
this
.
selectedItem
=
pos
;
notifyItemChanged
(
this
.
selectedItem
);
}
public
int
getSelectedItem
(){
return
selectedItem
;}
public
void
clickCurrentActiveImage
()
{
View
view
=
viewItemList
.
get
(
selectedItem
);
view
.
performClick
();
}
}
app/src/main/java/com/app/smartphotoeditor/adapters/ImageViewPlusColorAdapter.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.adapters
;
import
android.content.Context
;
import
android.graphics.Color
;
import
android.graphics.drawable.ColorDrawable
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.ImageView
;
import
androidx.annotation.NonNull
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.sba.sinhalaphotoeditor.R
;
import
com.sba.sinhalaphotoeditor.callbacks.OnTextAttributesChangedListner
;
import
com.sba.sinhalaphotoeditor.custom.views.ImageViewPlus
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
de.hdodenhof.circleimageview.CircleImageView
;
public
class
ImageViewPlusColorAdapter
extends
RecyclerView
.
Adapter
<
ImageViewPlusColorAdapter
.
MyViewHolder
>
{
private
Context
context
;
private
ArrayList
<
Integer
>
colorList
;
private
OnTextAttributesChangedListner
listner
;
private
HashMap
<
Integer
,
ImageView
>
viewList
;
private
ImageViewPlus
selectedImageView
;
public
ImageViewPlusColorAdapter
(
Context
context
,
ImageViewPlus
selectedImageView
,
OnTextAttributesChangedListner
listner
)
{
this
.
context
=
context
;
this
.
listner
=
listner
;
this
.
selectedImageView
=
selectedImageView
;
colorList
=
new
ArrayList
<>();
viewList
=
new
HashMap
<
Integer
,
ImageView
>();
setColorsList
();
}
@NonNull
@Override
public
MyViewHolder
onCreateViewHolder
(
@NonNull
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
text_color_row
,
null
,
false
);
return
new
MyViewHolder
(
view
);
}
@Override
public
void
onBindViewHolder
(
@NonNull
MyViewHolder
holder
,
final
int
position
)
{
if
(
colorList
!=
null
&&
colorList
.
size
()
>
position
)
{
viewList
.
put
(
position
,
holder
.
is_selected
);
holder
.
color_lay
.
setClipToOutline
(
true
);
ColorDrawable
colorDrawable
=
new
ColorDrawable
(
colorList
.
get
(
position
));
holder
.
color_lay
.
setImageDrawable
(
colorDrawable
);
holder
.
color_lay
.
setImageDrawable
(
colorDrawable
);
if
(
selectedImageView
!=
null
)
{
if
(
selectedImageView
.
getBorderColor
()
==
colorList
.
get
(
position
))
{
ImageView
view
=
viewList
.
get
(
position
);
if
(
view
!=
null
)
{
view
.
setVisibility
(
View
.
VISIBLE
);
}
}
}
holder
.
itemView
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
listner
.
onTextColorChanged
(
colorList
.
get
(
position
));
ArrayList
<
Integer
>
keyList
=
new
ArrayList
<>(
viewList
.
keySet
());
for
(
int
i
=
0
;
i
<
keyList
.
size
();
i
++)
{
if
(
position
==
keyList
.
get
(
i
))
{
if
(
viewList
.
get
(
keyList
.
get
(
i
))
!=
null
)
{
ImageView
view
=
viewList
.
get
(
keyList
.
get
(
i
));
if
(
view
!=
null
)
{
view
.
setVisibility
(
View
.
VISIBLE
);
}
}
}
else
{
ImageView
view
=
viewList
.
get
(
keyList
.
get
(
i
));
if
(
view
!=
null
)
{
view
.
setVisibility
(
View
.
GONE
);
}
}
}
}
});
}
}
@Override
public
int
getItemCount
()
{
return
colorList
.
size
();
}
public
class
MyViewHolder
extends
RecyclerView
.
ViewHolder
{
CircleImageView
color_lay
;
ImageView
is_selected
;
private
MyViewHolder
(
@NonNull
View
itemView
)
{
super
(
itemView
);
color_lay
=
itemView
.
findViewById
(
R
.
id
.
color_lay
);
is_selected
=
itemView
.
findViewById
(
R
.
id
.
is_selected
);
}
}
private
void
setColorsList
()
{
colorList
.
add
(
Color
.
BLACK
);
colorList
.
add
(
Color
.
WHITE
);
colorList
.
add
(
Color
.
GRAY
);
colorList
.
add
(
Color
.
LTGRAY
);
colorList
.
add
(
Color
.
RED
);
colorList
.
add
(
Color
.
GREEN
);
colorList
.
add
(
Color
.
BLUE
);
colorList
.
add
(
Color
.
DKGRAY
);
colorList
.
add
(
Color
.
YELLOW
);
colorList
.
add
(
Color
.
CYAN
);
colorList
.
add
(
Color
.
MAGENTA
);
if
(
selectedImageView
!=
null
)
{
for
(
int
i
=
0
;
i
<
colorList
.
size
();
i
++)
{
if
(
colorList
.
get
(
i
)
==
selectedImageView
.
getBorderColor
())
{
colorList
.
remove
(
i
);
colorList
.
add
(
0
,
selectedImageView
.
getBorderColor
());
notifyDataSetChanged
();
break
;
}
}
}
}
}
app/src/main/java/com/app/smartphotoeditor/adapters/RecentImageAdapter.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.adapters
;
import
android.app.Dialog
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.util.DisplayMetrics
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.animation.Animation
;
import
android.view.animation.AnimationUtils
;
import
android.widget.ImageView
;
import
android.widget.ProgressBar
;
import
android.widget.TextView
;
import
androidx.annotation.NonNull
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.bumptech.glide.Glide
;
import
com.sba.sinhalaphotoeditor.R
;
import
com.sba.sinhalaphotoeditor.activities.MainActivity
;
import
com.sba.sinhalaphotoeditor.aynctask.AddImageToArrayListAsyncTask
;
import
com.sba.sinhalaphotoeditor.callbacks.OnAsyncTaskState
;
import
com.sba.sinhalaphotoeditor.database.DatabaseHelper
;
import
com.sba.sinhalaphotoeditor.singleton.ImageList
;
import
java.util.ArrayList
;
public
class
RecentImageAdapter
extends
RecyclerView
.
Adapter
<
RecentImageAdapter
.
MyViewHolder
>
{
private
ArrayList
<
Bitmap
>
images
=
new
ArrayList
<>();
private
ArrayList
<
String
>
dates
=
new
ArrayList
<>();
private
Context
context
;
private
Bitmap
selectedImage
=
null
;
private
Dialog
dialog
;
int
percent
;
public
RecentImageAdapter
(
Context
context
,
ArrayList
<
Bitmap
>
images
,
ArrayList
<
Integer
>
ids
,
ArrayList
<
String
>
dates
)
{
this
.
images
=
images
;
this
.
dates
=
dates
;
this
.
context
=
context
;
DatabaseHelper
helper
=
new
DatabaseHelper
(
context
);
DisplayMetrics
displayMetrics
=
context
.
getResources
().
getDisplayMetrics
();
float
dpHeight
=
displayMetrics
.
heightPixels
/
displayMetrics
.
density
;
//float dpWidth = displayMetrics.widthPixels / displayMetrics.density;
percent
=
(
int
)
(
dpHeight
/
4
);
}
@NonNull
@Override
public
MyViewHolder
onCreateViewHolder
(
@NonNull
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
parent
.
getContext
()).
inflate
(
R
.
layout
.
recent_image_list_row
,
parent
,
false
);
return
new
MyViewHolder
(
view
);
}
@Override
public
void
onBindViewHolder
(
@NonNull
MyViewHolder
holder
,
final
int
position
)
{
holder
.
itemView
.
setLayoutParams
(
new
ConstraintLayout
.
LayoutParams
(
percent
,
ViewGroup
.
LayoutParams
.
MATCH_PARENT
));
if
(
images
.
size
()
>
position
)
{
Glide
.
with
(
context
).
load
(
images
.
get
(
position
)).
into
(
holder
.
image
);
if
(
dates
!=
null
&&
dates
.
size
()
>
position
)
{
holder
.
date
.
setText
(
dates
.
get
(
position
));
}
holder
.
itemView
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
selectedImage
=
images
.
get
(
position
);
showProgressDialog
();
ImageList
.
getInstance
().
clearImageList
();
AddImageToArrayListAsyncTask
task
=
new
AddImageToArrayListAsyncTask
(
selectedImage
,
new
OnAsyncTaskState
()
{
@Override
public
void
startActivityForResult
()
{
hideProgressDialog
();
if
(
context
instanceof
MainActivity
)
{
((
MainActivity
)
context
).
startActivityForRecentEdits
();
}
}
});
task
.
execute
();
}
});
}
else
{
holder
.
itemView
.
setOnClickListener
(
null
);
}
// holder.delete.setOnClickListener(new View.OnClickListener()
// {
// @Override
// public void onClick(View v)
// {
// final AlertDialog.Builder builder = new AlertDialog.Builder(context);
// builder.setTitle("Delete Image");
// builder.setIcon(R.drawable.delete);
// builder.setMessage("Are sure you want to delete?");
// builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int which)
// {
// if(helper.deleteImage(ids.get(position)))
// {
// ids.remove(position);
// images.remove(position);
// dates.remove(position);
//
//
// Methods.showCustomToast(context,context.getResources().getString(R.string.removed_text));
// notifyDataSetChanged();
// }
// else
// {
// Methods.showCustomToast(context,context.getString(R.string.something_went_wrong_text));
// }
//
// }
// });
// builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int which) {
//
// }
// });
// builder.show();
// }
// });
}
@Override
public
int
getItemCount
()
{
if
(
images
.
isEmpty
())
{
return
0
;
}
return
Math
.
max
(
images
.
size
(),
5
);
}
public
class
MyViewHolder
extends
RecyclerView
.
ViewHolder
{
ImageView
image
;
TextView
date
;
ImageView
delete
;
public
MyViewHolder
(
@NonNull
View
view
)
{
super
(
view
);
image
=
view
.
findViewById
(
R
.
id
.
image
);
date
=
view
.
findViewById
(
R
.
id
.
date
);
delete
=
view
.
findViewById
(
R
.
id
.
delete
);
Animation
top
=
AnimationUtils
.
loadAnimation
(
context
,
R
.
anim
.
bottomtotop
);
top
.
setDuration
(
500
);
view
.
setAnimation
(
top
);
top
.
start
();
}
}
public
void
showProgressDialog
()
{
if
(
dialog
==
null
)
{
dialog
=
new
Dialog
(
context
,
R
.
style
.
CustomBottomSheetDialogTheme
);
}
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
progress_dialog
,
null
);
ProgressBar
bar
=
view
.
findViewById
(
R
.
id
.
progressBar
);
bar
.
setVisibility
(
View
.
VISIBLE
);
// Glide.with(context).asGif().load(R.drawable.loading_gif).into(bar);
dialog
.
setContentView
(
view
,
new
ViewGroup
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
ViewGroup
.
LayoutParams
.
MATCH_PARENT
));
dialog
.
show
();
}
public
void
hideProgressDialog
()
{
if
(
dialog
!=
null
)
{
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
progress_dialog
,
null
);
ProgressBar
bar
=
view
.
findViewById
(
R
.
id
.
progressBar
);
bar
.
setVisibility
(
View
.
GONE
);
dialog
.
setContentView
(
view
,
new
ViewGroup
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
ViewGroup
.
LayoutParams
.
MATCH_PARENT
));
dialog
.
hide
();
}
}
}
app/src/main/java/com/app/smartphotoeditor/adapters/ShadowColorAdapter.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.adapters
;
import
android.content.Context
;
import
android.graphics.Color
;
import
android.graphics.drawable.ColorDrawable
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.ImageView
;
import
androidx.annotation.NonNull
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.sba.sinhalaphotoeditor.R
;
import
com.sba.sinhalaphotoeditor.callbacks.OnTextAttributesChangedListner
;
import
com.sba.sinhalaphotoeditor.model.TextViewPlus
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
de.hdodenhof.circleimageview.CircleImageView
;
public
class
ShadowColorAdapter
extends
RecyclerView
.
Adapter
<
ShadowColorAdapter
.
MyViewHolder
>
{
private
Context
context
;
private
ArrayList
<
Integer
>
colorList
;
private
OnTextAttributesChangedListner
listner
;
private
HashMap
<
Integer
,
ImageView
>
viewList
;
private
TextViewPlus
selectedTextView
;
public
ShadowColorAdapter
(
Context
context
,
TextViewPlus
selectedTextView
,
OnTextAttributesChangedListner
listner
)
{
this
.
context
=
context
;
this
.
listner
=
listner
;
this
.
selectedTextView
=
selectedTextView
;
viewList
=
new
HashMap
<
Integer
,
ImageView
>();
colorList
=
new
ArrayList
<>();
setColorsList
();
}
@NonNull
@Override
public
MyViewHolder
onCreateViewHolder
(
@NonNull
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
text_color_row
,
null
,
false
);
return
new
MyViewHolder
(
view
);
}
@Override
public
void
onBindViewHolder
(
@NonNull
MyViewHolder
holder
,
final
int
position
)
{
if
(
colorList
!=
null
&&
colorList
.
size
()
>
position
)
{
viewList
.
put
(
position
,
holder
.
is_selected
);
ColorDrawable
colorDrawable
=
new
ColorDrawable
(
colorList
.
get
(
position
));
holder
.
color_lay
.
setImageDrawable
(
colorDrawable
);
holder
.
color_lay
.
setClipToOutline
(
true
);
if
(
selectedTextView
!=
null
)
{
if
(
selectedTextView
.
getShadowColor
()
==
colorList
.
get
(
position
))
{
ImageView
view
=
viewList
.
get
(
position
);
if
(
view
!=
null
)
{
view
.
setVisibility
(
View
.
VISIBLE
);
}
}
}
holder
.
itemView
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
listner
.
onTextShadowColorChanged
(
colorList
.
get
(
position
));
ArrayList
<
Integer
>
keyList
=
new
ArrayList
<>(
viewList
.
keySet
());
for
(
int
i
=
0
;
i
<
keyList
.
size
();
i
++)
{
if
(
position
==
keyList
.
get
(
i
))
{
if
(
viewList
.
get
(
keyList
.
get
(
i
))
!=
null
)
{
ImageView
view
=
viewList
.
get
(
keyList
.
get
(
i
));
if
(
view
!=
null
)
{
view
.
setVisibility
(
View
.
VISIBLE
);
}
}
}
else
{
ImageView
view
=
viewList
.
get
(
keyList
.
get
(
i
));
if
(
view
!=
null
)
{
view
.
setVisibility
(
View
.
GONE
);
}
}
}
}
});
}
}
@Override
public
int
getItemCount
()
{
return
colorList
.
size
();
}
public
class
MyViewHolder
extends
RecyclerView
.
ViewHolder
{
CircleImageView
color_lay
;
ImageView
is_selected
;
private
MyViewHolder
(
@NonNull
View
itemView
)
{
super
(
itemView
);
color_lay
=
itemView
.
findViewById
(
R
.
id
.
color_lay
);
is_selected
=
itemView
.
findViewById
(
R
.
id
.
is_selected
);
}
}
private
void
setColorsList
()
{
colorList
.
add
(
Color
.
BLACK
);
colorList
.
add
(
Color
.
WHITE
);
colorList
.
add
(
Color
.
GRAY
);
colorList
.
add
(
Color
.
LTGRAY
);
colorList
.
add
(
Color
.
RED
);
colorList
.
add
(
Color
.
GREEN
);
colorList
.
add
(
Color
.
DKGRAY
);
colorList
.
add
(
Color
.
BLUE
);
colorList
.
add
(
Color
.
YELLOW
);
colorList
.
add
(
Color
.
CYAN
);
colorList
.
add
(
Color
.
MAGENTA
);
if
(
selectedTextView
!=
null
)
{
for
(
int
i
=
0
;
i
<
colorList
.
size
();
i
++)
{
if
(
colorList
.
get
(
i
)
==
selectedTextView
.
getShadowColor
())
{
colorList
.
remove
(
i
);
colorList
.
add
(
0
,
selectedTextView
.
getShadowColor
());
notifyDataSetChanged
();
break
;
}
}
}
}
}
app/src/main/java/com/app/smartphotoeditor/adapters/StickerAdapter.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.adapters
;
import
android.content.Context
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.ImageView
;
import
androidx.annotation.NonNull
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.bumptech.glide.Glide
;
import
com.sba.sinhalaphotoeditor.R
;
import
java.util.ArrayList
;
public
class
StickerAdapter
extends
RecyclerView
.
Adapter
<
StickerAdapter
.
MyViewHolder
>
{
private
ArrayList
<
String
>
imageList
;
private
Context
context
;
public
StickerAdapter
(
Context
context
,
ArrayList
<
String
>
imageList
)
{
this
.
context
=
context
;
this
.
imageList
=
imageList
;
}
@NonNull
@Override
public
MyViewHolder
onCreateViewHolder
(
@NonNull
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
sticker_row
,
null
);
return
new
MyViewHolder
(
view
);
}
@Override
public
void
onBindViewHolder
(
@NonNull
MyViewHolder
holder
,
int
position
)
{
if
(
imageList
!=
null
&&
imageList
.
size
()
>
position
)
{
Glide
.
with
(
context
).
load
(
imageList
.
get
(
position
)).
into
(
holder
.
sticker
);
}
}
@Override
public
int
getItemCount
()
{
if
(
imageList
!=
null
)
return
imageList
.
size
();
else
return
0
;
}
public
class
MyViewHolder
extends
RecyclerView
.
ViewHolder
{
ImageView
sticker
;
public
MyViewHolder
(
@NonNull
View
itemView
)
{
super
(
itemView
);
sticker
=
itemView
.
findViewById
(
R
.
id
.
sticker
);
}
}
}
app/src/main/java/com/app/smartphotoeditor/adapters/StickerViewPagerAdapter.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.adapters
;
import
androidx.annotation.NonNull
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.FragmentManager
;
import
androidx.fragment.app.FragmentStatePagerAdapter
;
import
com.sba.sinhalaphotoeditor.fragments.StickerFragment
;
import
com.sba.sinhalaphotoeditor.model.FirebaseStickerCategory
;
import
java.util.ArrayList
;
public
class
StickerViewPagerAdapter
extends
FragmentStatePagerAdapter
{
private
ArrayList
<
FirebaseStickerCategory
>
categoryList
;
public
StickerViewPagerAdapter
(
@NonNull
FragmentManager
fm
,
ArrayList
<
FirebaseStickerCategory
>
categoryList
)
{
super
(
fm
);
this
.
categoryList
=
categoryList
;
}
@NonNull
@Override
public
Fragment
getItem
(
int
position
)
{
if
(
categoryList
!=
null
&&
categoryList
.
size
()
>
position
)
{
return
new
StickerFragment
(
categoryList
.
get
(
position
));
}
return
null
;
}
@Override
public
int
getCount
()
{
if
(
categoryList
!=
null
)
return
categoryList
.
size
();
else
return
0
;
}
}
app/src/main/java/com/app/smartphotoeditor/adapters/TextColorAdapter.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.adapters
;
import
android.content.Context
;
import
android.graphics.Color
;
import
android.graphics.drawable.ColorDrawable
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.ImageView
;
import
androidx.annotation.NonNull
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.sba.sinhalaphotoeditor.R
;
import
com.sba.sinhalaphotoeditor.callbacks.OnTextAttributesChangedListner
;
import
com.sba.sinhalaphotoeditor.model.TextViewPlus
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
de.hdodenhof.circleimageview.CircleImageView
;
public
class
TextColorAdapter
extends
RecyclerView
.
Adapter
<
TextColorAdapter
.
MyViewHolder
>
{
private
Context
context
;
private
ArrayList
<
Integer
>
colorList
;
private
OnTextAttributesChangedListner
listner
;
private
HashMap
<
Integer
,
ImageView
>
viewList
;
private
TextViewPlus
selectedTextView
;
public
TextColorAdapter
(
Context
context
,
TextViewPlus
selectedTextView
,
OnTextAttributesChangedListner
listner
)
{
this
.
context
=
context
;
this
.
listner
=
listner
;
this
.
selectedTextView
=
selectedTextView
;
colorList
=
new
ArrayList
<>();
viewList
=
new
HashMap
<
Integer
,
ImageView
>();
setColorsList
();
}
@NonNull
@Override
public
MyViewHolder
onCreateViewHolder
(
@NonNull
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
text_color_row
,
null
,
false
);
return
new
MyViewHolder
(
view
);
}
@Override
public
void
onBindViewHolder
(
@NonNull
MyViewHolder
holder
,
final
int
position
)
{
if
(
colorList
!=
null
&&
colorList
.
size
()
>
position
)
{
viewList
.
put
(
position
,
holder
.
is_selected
);
holder
.
color_lay
.
setClipToOutline
(
true
);
ColorDrawable
colorDrawable
=
new
ColorDrawable
(
colorList
.
get
(
position
));
holder
.
color_lay
.
setImageDrawable
(
colorDrawable
);
holder
.
color_lay
.
setImageDrawable
(
colorDrawable
);
if
(
selectedTextView
!=
null
)
{
if
(
selectedTextView
.
getTextColor
()
==
colorList
.
get
(
position
))
{
ImageView
view
=
viewList
.
get
(
position
);
if
(
view
!=
null
)
{
view
.
setVisibility
(
View
.
VISIBLE
);
}
}
}
holder
.
itemView
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
listner
.
onTextColorChanged
(
colorList
.
get
(
position
));
ArrayList
<
Integer
>
keyList
=
new
ArrayList
<>(
viewList
.
keySet
());
for
(
int
i
=
0
;
i
<
keyList
.
size
();
i
++)
{
if
(
position
==
keyList
.
get
(
i
))
{
if
(
viewList
.
get
(
keyList
.
get
(
i
))
!=
null
)
{
ImageView
view
=
viewList
.
get
(
keyList
.
get
(
i
));
if
(
view
!=
null
)
{
view
.
setVisibility
(
View
.
VISIBLE
);
}
}
}
else
{
ImageView
view
=
viewList
.
get
(
keyList
.
get
(
i
));
if
(
view
!=
null
)
{
view
.
setVisibility
(
View
.
GONE
);
}
}
}
}
});
}
}
@Override
public
int
getItemCount
()
{
return
colorList
.
size
();
}
public
class
MyViewHolder
extends
RecyclerView
.
ViewHolder
{
CircleImageView
color_lay
;
ImageView
is_selected
;
private
MyViewHolder
(
@NonNull
View
itemView
)
{
super
(
itemView
);
color_lay
=
itemView
.
findViewById
(
R
.
id
.
color_lay
);
is_selected
=
itemView
.
findViewById
(
R
.
id
.
is_selected
);
}
}
private
void
setColorsList
()
{
colorList
.
add
(
Color
.
BLACK
);
colorList
.
add
(
Color
.
WHITE
);
colorList
.
add
(
Color
.
GRAY
);
colorList
.
add
(
Color
.
LTGRAY
);
colorList
.
add
(
Color
.
RED
);
colorList
.
add
(
Color
.
GREEN
);
colorList
.
add
(
Color
.
BLUE
);
colorList
.
add
(
Color
.
DKGRAY
);
colorList
.
add
(
Color
.
YELLOW
);
colorList
.
add
(
Color
.
CYAN
);
colorList
.
add
(
Color
.
MAGENTA
);
if
(
selectedTextView
!=
null
)
{
for
(
int
i
=
0
;
i
<
colorList
.
size
();
i
++)
{
if
(
colorList
.
get
(
i
)
==
selectedTextView
.
getTextColor
())
{
colorList
.
remove
(
i
);
colorList
.
add
(
0
,
selectedTextView
.
getTextColor
());
notifyDataSetChanged
();
break
;
}
}
}
}
}
app/src/main/java/com/app/smartphotoeditor/adapters/TextFontAdapter.java
0 → 100644
View file @
159a0f3e
This diff is collapsed.
Click to expand it.
app/src/main/java/com/app/smartphotoeditor/adapters/WalkthroughPagerAdapter.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.adapters
;
import
android.graphics.drawable.Drawable
;
import
androidx.annotation.NonNull
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.FragmentManager
;
import
androidx.fragment.app.FragmentStatePagerAdapter
;
import
com.sba.sinhalaphotoeditor.fragments.WalkthroughPagerFragment
;
import
java.util.ArrayList
;
public
class
WalkthroughPagerAdapter
extends
FragmentStatePagerAdapter
{
private
ArrayList
<
Drawable
>
image1
=
new
ArrayList
<
Drawable
>();
private
ArrayList
<
Drawable
>
image2
=
new
ArrayList
<
Drawable
>();
private
ArrayList
<
Drawable
>
image3
=
new
ArrayList
<
Drawable
>();
private
ArrayList
<
String
>
titles
=
new
ArrayList
<>();
private
ArrayList
<
String
>
description
=
new
ArrayList
<>();
public
WalkthroughPagerAdapter
(
@NonNull
FragmentManager
fm
,
ArrayList
<
Drawable
>
image1
,
ArrayList
<
Drawable
>
image2
,
ArrayList
<
Drawable
>
image3
,
ArrayList
<
String
>
titles
,
ArrayList
<
String
>
description
)
{
super
(
fm
);
this
.
image1
=
image1
;
this
.
image2
=
image2
;
this
.
image3
=
image3
;
this
.
titles
=
titles
;
this
.
description
=
description
;
}
@NonNull
@Override
public
Fragment
getItem
(
int
position
)
{
Drawable
im1
;
Drawable
im2
;
Drawable
im3
;
if
((
image1
.
size
()
-
1
)
>=
position
)
{
im1
=
image1
.
get
(
position
);
}
else
{
im1
=
null
;
}
if
((
image2
.
size
()
-
1
)
>=
position
)
{
im2
=
image2
.
get
(
position
);
}
else
{
im2
=
null
;
}
if
((
image3
.
size
()
-
1
)
>=
position
)
{
im3
=
image3
.
get
(
position
);
}
else
{
im3
=
null
;
}
WalkthroughPagerFragment
fragment
=
new
WalkthroughPagerFragment
(
im1
,
im2
,
im3
,
titles
.
get
(
position
),
description
.
get
(
position
));
return
fragment
;
}
@Override
public
int
getCount
()
{
return
titles
.
size
();
}
}
app/src/main/java/com/app/smartphotoeditor/asynctask/AddImageToArrayListAsyncTask.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.asynctask
;
import
android.graphics.Bitmap
;
import
android.os.AsyncTask
;
import
com.app.smartphotoeditor.config.ImageList
;
import
com.app.smartphotoeditor.listeners.OnAsyncTaskState
;
public
class
AddImageToArrayListAsyncTask
extends
AsyncTask
<
Void
,
Void
,
Void
>
{
private
Bitmap
imageToBeAdded
;
private
OnAsyncTaskState
listner
;
public
AddImageToArrayListAsyncTask
(
Bitmap
imageToBeAdded
,
OnAsyncTaskState
listner
)
{
this
.
imageToBeAdded
=
imageToBeAdded
;
this
.
listner
=
listner
;
}
@Override
protected
void
onPreExecute
()
{
super
.
onPreExecute
();
}
@Override
protected
void
onPostExecute
(
Void
aVoid
)
{
listner
.
startActivityForResult
();
super
.
onPostExecute
(
aVoid
);
}
@Override
protected
Void
doInBackground
(
Void
...
voids
)
{
if
(
imageToBeAdded
!=
null
)
{
ImageList
.
getInstance
().
addBitmap
(
imageToBeAdded
,
true
);
}
return
null
;
}
}
\ No newline at end of file
app/src/main/java/com/app/smartphotoeditor/database/DatabaseHelper.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.database
;
import
android.content.ContentValues
;
import
android.content.Context
;
import
android.database.Cursor
;
import
android.database.sqlite.SQLiteDatabase
;
import
android.database.sqlite.SQLiteOpenHelper
;
import
android.graphics.Bitmap
;
import
android.graphics.BitmapFactory
;
import
androidx.annotation.Nullable
;
import
com.app.smartphotoeditor.sdk.Methods
;
import
java.io.ByteArrayOutputStream
;
public
class
DatabaseHelper
extends
SQLiteOpenHelper
{
private
static
final
String
DATABASE_NAME
=
"Images.db"
;
private
static
final
String
TABLE_NAME
=
"Images"
;
private
static
final
String
COL_1
=
"Id"
;
private
static
final
String
COL_2
=
"Image"
;
private
static
final
String
COL_3
=
"DateTime"
;
private
static
final
String
USER_TABLE_NAME
=
"users"
;
private
static
final
String
USER_TABLE_COL_1
=
"id"
;
private
static
final
String
USER_TABLE_COL_2
=
"image"
;
private
static
final
int
DATABASE_VERSION
=
3
;
private
Context
context
;
public
DatabaseHelper
(
@Nullable
Context
context
)
{
super
(
context
,
DATABASE_NAME
,
null
,
DATABASE_VERSION
);
this
.
context
=
context
;
}
@Override
public
void
onCreate
(
SQLiteDatabase
db
)
{
db
.
execSQL
(
"CREATE TABLE "
+
TABLE_NAME
+
"(Id INTEGER PRIMARY KEY AUTOINCREMENT,Image BLOB,DateTime TEXT NOT NULL)"
);
db
.
execSQL
(
"CREATE TABLE "
+
USER_TABLE_NAME
+
"(id INTEGER PRIMARY KEY AUTOINCREMENT,image BLOB NOT NULL)"
);
}
public
void
createTableAgain
(
SQLiteDatabase
db
)
{
db
.
execSQL
(
"CREATE TABLE "
+
TABLE_NAME
+
"(Id INTEGER PRIMARY KEY AUTOINCREMENT,Image BLOB,DateTime TEXT NOT NULL)"
);
}
@Override
public
void
onUpgrade
(
SQLiteDatabase
db
,
int
oldVersion
,
int
newVersion
)
{
db
.
execSQL
(
"DROP TABLE "
+
TABLE_NAME
);
createTableAgain
(
db
);
}
public
boolean
AddImage
(
byte
[]
image
,
String
date
)
{
SQLiteDatabase
db
=
this
.
getWritableDatabase
();
ContentValues
values
=
new
ContentValues
();
values
.
put
(
COL_2
,
image
);
values
.
put
(
COL_3
,
date
);
long
res
=
db
.
insert
(
TABLE_NAME
,
null
,
values
);
if
(
res
<
0
)
{
return
false
;
}
else
{
return
true
;
}
}
public
boolean
AddUserProfilePicture
(
byte
[]
image
)
{
SQLiteDatabase
db
=
this
.
getWritableDatabase
();
ContentValues
values
=
new
ContentValues
();
values
.
put
(
USER_TABLE_COL_2
,
image
);
long
res
=
db
.
insert
(
USER_TABLE_NAME
,
null
,
values
);
if
(
res
<
0
)
{
return
false
;
}
else
{
return
true
;
}
}
public
Cursor
GetAllImages
()
{
//deleteUnnessaryImages();
SQLiteDatabase
db
=
this
.
getWritableDatabase
();
return
db
.
rawQuery
(
"SELECT * FROM "
+
TABLE_NAME
+
" ORDER BY "
+
COL_1
+
" DESC"
,
null
);
}
public
Cursor
GetAllImagesASC
()
{
SQLiteDatabase
db
=
this
.
getWritableDatabase
();
return
db
.
rawQuery
(
"SELECT * FROM "
+
TABLE_NAME
+
" ORDER BY "
+
COL_1
+
" ASC"
,
null
);
}
public
byte
[]
getBytes
(
Bitmap
bitmap
)
{
if
(
bitmap
!=
null
)
{
ByteArrayOutputStream
stream
=
new
ByteArrayOutputStream
();
bitmap
.
compress
(
Bitmap
.
CompressFormat
.
PNG
,
0
,
stream
);
return
stream
.
toByteArray
();
}
return
null
;
}
public
Bitmap
getImage
(
byte
[]
image
)
{
return
BitmapFactory
.
decodeByteArray
(
image
,
0
,
image
.
length
);
}
public
boolean
deleteImage
(
int
id
)
{
SQLiteDatabase
db
=
this
.
getWritableDatabase
();
int
res
=
db
.
delete
(
TABLE_NAME
,
"Id = ?"
,
new
String
[]{
String
.
valueOf
(
id
)});
if
(
res
>
0
)
{
return
true
;
}
return
false
;
}
public
void
deleteAll
()
{
SQLiteDatabase
db
=
this
.
getWritableDatabase
();
db
.
execSQL
(
"DELETE FROM "
+
TABLE_NAME
);
}
public
int
getNumberOfRows
()
{
SQLiteDatabase
db
=
this
.
getWritableDatabase
();
Cursor
cursor
=
db
.
rawQuery
(
"SELECT * FROM "
+
TABLE_NAME
,
null
);
int
value
=
cursor
.
getCount
();
cursor
.
close
();
return
value
;
}
public
void
deleteUnnessaryImages
()
{
int
recentImageMaxSize
=
5
;
if
(
getNumberOfRows
()
>
recentImageMaxSize
)
{
int
numberOfItemsNeedToDeleted
=
getNumberOfRows
()
-
recentImageMaxSize
;
Cursor
cursor
=
GetAllImagesASC
();
while
(
cursor
.
moveToNext
())
{
numberOfItemsNeedToDeleted
--;
if
(
numberOfItemsNeedToDeleted
==
-
1
)
{
break
;
}
deleteImage
(
cursor
.
getInt
(
0
));
Methods
.
deleteFileFromInternalStorage
(
context
,
cursor
.
getString
(
2
));
}
cursor
.
close
();
}
}
}
app/src/main/java/com/app/smartphotoeditor/listeners/OnAFileAddedListner.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.listeners
;
import
com.sba.sinhalaphotoeditor.model.GalleryImage
;
public
interface
OnAFileAddedListner
{
public
void
fileAdded
(
GalleryImage
image
);
public
void
notifyAdapter
();
}
app/src/main/java/com/app/smartphotoeditor/listeners/OnAsyncTaskState.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.listeners
;
public
interface
OnAsyncTaskState
{
public
void
startActivityForResult
();
}
app/src/main/java/com/app/smartphotoeditor/listeners/OnAuthenticationState.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.listeners
;
public
interface
OnAuthenticationState
{
public
void
onAuthenticationSuccess
();
public
void
onAuthenticationFailed
();
}
app/src/main/java/com/app/smartphotoeditor/listeners/OnBitmapChanged.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.listeners
;
import
android.graphics.Bitmap
;
import
com.zomato.photofilters.imageprocessors.Filter
;
public
interface
OnBitmapChanged
{
public
void
bitmapChanged
(
Bitmap
bitmap
,
Filter
filter
);
}
app/src/main/java/com/app/smartphotoeditor/listeners/OnFirebaseStickerChangedListener.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.listeners
;
public
interface
OnFirebaseStickerChangedListener
{
public
void
onCategoryChanged
(
FirebaseStickerCategory
category
);
}
app/src/main/java/com/app/smartphotoeditor/listeners/OnItemClickListner.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.listeners
;
import
java.io.File
;
public
interface
OnItemClickListner
{
public
void
onClicked
(
File
file
);
}
app/src/main/java/com/app/smartphotoeditor/listeners/OnTextAttributesChangedListner.java
0 → 100644
View file @
159a0f3e
package
com.app.smartphotoeditor.listeners
;
import
android.graphics.Typeface
;
public
interface
OnTextAttributesChangedListner
{
public
void
onTextColorChanged
(
int
color
);
public
void
onTextShadowColorChanged
(
int
color
);
public
void
onTextFontChanged
(
Typeface
typeFace
);
}
app/src/main/res/layout/activity_add_effects.xml
0 → 100644
View file @
159a0f3e
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/color_gray"
tools:context=
".activities.AddEffects"
>
<ImageView
android:id=
"@+id/userSelectedImage"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:adjustViewBounds=
"true"
android:scaleType=
"centerInside"
app:layout_constraintBottom_toTopOf=
"@+id/filterRecyclerView"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.0"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<com.google.android.gms.ads.AdView
android:id=
"@+id/adView"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentBottom=
"true"
android:layout_centerHorizontal=
"true"
app:adSize=
"BANNER"
app:adUnitId=
"ca-app-pub-3538783908730049/1216781500"
app:layout_constraintBottom_toTopOf=
"@+id/constraintLayout2"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
/>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/filterRecyclerView"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/material_dark_blue"
android:paddingTop=
"10dp"
android:paddingBottom=
"10dp"
android:scrollbars=
"none"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
/>
<ProgressBar
android:id=
"@+id/progress_bar"
android:layout_width=
"50dp"
android:layout_height=
"50dp"
android:layout_marginStart=
"8dp"
android:layout_marginTop=
"8dp"
android:layout_marginEnd=
"8dp"
android:visibility=
"gone"
style=
"?android:attr/progressBarStyle"
android:indeterminateDrawable=
"@drawable/progress_bar_material"
app:layout_constraintBottom_toBottomOf=
"@+id/userSelectedImage"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/constraintLayout2"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:layout_constraintBottom_toBottomOf=
"@+id/userSelectedImage"
>
<ImageView
android:id=
"@+id/expandIcon"
android:layout_width=
"match_parent"
android:layout_height=
"30dp"
android:background=
"@drawable/top_rounded_background"
android:src=
"@drawable/iphone_swipe_up"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.498"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/subFiltersLayout"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/colorPrimary"
android:visibility=
"gone"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.0"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/expandIcon"
app:layout_constraintVertical_bias=
"0.0"
tools:visibility=
"visible"
>
<TextView
android:id=
"@+id/textView20"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"32dp"
android:layout_marginTop=
"8dp"
android:fontFamily=
"@font/gemunulibrebold"
android:text=
"Brightness"
android:textColor=
"@android:color/white"
android:textSize=
"17sp"
android:textStyle=
"bold"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<com.warkiz.tickseekbar.TickSeekBar
android:id=
"@+id/listener"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"8dp"
android:layout_marginRight=
"@dimen/_32sdp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"@+id/textView20"
app:layout_constraintTop_toBottomOf=
"@+id/textView20"
app:tsb_max=
"100"
app:tsb_show_tick_marks_type=
"none"
app:tsb_thumb_color=
"#FFFFFF"
app:tsb_thumb_size=
"20dp"
app:tsb_ticks_count=
"1"
app:tsb_track_background_color=
"#FFFFFF"
app:tsb_track_background_size=
"20dp"
app:tsb_track_progress_color=
"#FFFFFF"
app:tsb_track_progress_size=
"3dp"
/>
<TextView
android:id=
"@+id/textView21"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"8dp"
android:fontFamily=
"@font/gemunulibrebold"
android:text=
"Vignette"
android:textColor=
"@android:color/white"
android:textSize=
"17sp"
android:textStyle=
"bold"
app:layout_constraintStart_toStartOf=
"@+id/listener"
app:layout_constraintTop_toBottomOf=
"@+id/listener"
/>
<com.warkiz.tickseekbar.TickSeekBar
android:id=
"@+id/listener2"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"8dp"
app:layout_constraintEnd_toEndOf=
"@+id/listener"
app:layout_constraintStart_toStartOf=
"@+id/textView21"
app:layout_constraintTop_toBottomOf=
"@+id/textView21"
app:tsb_max=
"255"
app:tsb_show_tick_marks_type=
"none"
app:tsb_thumb_color=
"#FFFFFF"
app:tsb_thumb_size=
"20dp"
app:tsb_ticks_count=
"1"
app:tsb_track_background_color=
"#FFFFFF"
app:tsb_track_background_size=
"9dp"
app:tsb_track_progress_color=
"#FFFFFF"
app:tsb_track_progress_size=
"3dp"
/>
<TextView
android:id=
"@+id/textView22"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"8dp"
android:fontFamily=
"@font/gemunulibrebold"
android:text=
"Saturation"
android:textColor=
"@android:color/white"
android:textSize=
"17sp"
android:textStyle=
"bold"
app:layout_constraintStart_toStartOf=
"@+id/listener2"
app:layout_constraintTop_toBottomOf=
"@+id/listener2"
/>
<com.warkiz.tickseekbar.TickSeekBar
android:id=
"@+id/listener3"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"8dp"
android:layout_marginBottom=
"16dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"@+id/listener2"
app:layout_constraintHorizontal_bias=
"0.25"
app:layout_constraintStart_toStartOf=
"@+id/textView22"
app:layout_constraintTop_toBottomOf=
"@+id/textView22"
app:tsb_max=
"10"
app:tsb_show_tick_marks_type=
"none"
app:tsb_thumb_color=
"#FFFFFF"
app:tsb_thumb_size=
"20dp"
app:tsb_ticks_count=
"1"
app:tsb_track_background_color=
"#FFFFFF"
app:tsb_track_background_size=
"9dp"
app:tsb_track_progress_color=
"#FFFFFF"
app:tsb_track_progress_size=
"3dp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/activity_add_sticker_on_image.xml
0 → 100644
View file @
159a0f3e
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:id=
"@+id/baseLayout"
android:background=
"#000000"
tools:context=
".activities.AddStickerOnImage"
>
<androidx.appcompat.widget.Toolbar
android:id=
"@+id/toolbar"
style=
"@android:style/Widget.ActionBar"
android:layout_width=
"match_parent"
android:layout_height=
"?attr/actionBarSize"
android:background=
"@color/material_dark_blue"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"1.0"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<TextView
android:id=
"@+id/tool_bar_title"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:ellipsize=
"end"
android:fontFamily=
"@font/bindumathi"
android:gravity=
"left"
android:maxLines=
"1"
android:text=
"@string/add_text"
android:textColor=
"@android:color/white"
android:textSize=
"19sp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@+id/img_delete_text_container"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/img_done_container"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
>
<ImageView
android:id=
"@+id/img_done"
android:layout_width=
"35dp"
android:layout_height=
"0dp"
android:layout_marginStart=
"8dp"
android:layout_marginEnd=
"8dp"
android:src=
"@drawable/right_icon"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/img_add_sticker_container"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@+id/img_done_container"
app:layout_constraintTop_toTopOf=
"parent"
>
<ImageView
android:id=
"@+id/img_sticker"
android:layout_width=
"35dp"
android:layout_height=
"0dp"
android:layout_marginStart=
"8dp"
android:layout_marginEnd=
"8dp"
android:src=
"@drawable/addsticker"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintVertical_bias=
"0.0"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/img_delete_text_container"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
android:onClick=
"removeStickerView"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@+id/img_add_sticker_container"
app:layout_constraintTop_toTopOf=
"parent"
>
<ImageView
android:id=
"@+id/img_delete_text"
android:layout_width=
"35dp"
android:layout_height=
"0dp"
android:layout_marginStart=
"8dp"
android:layout_marginEnd=
"8dp"
android:src=
"@drawable/delete_icon"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintVertical_bias=
"0.0"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.appcompat.widget.Toolbar>
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/workingLayout"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/toolbar"
>
<ImageView
android:id=
"@+id/sourceImageView"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.github.chuross.library.ExpandableLayout
android:id=
"@+id/explandableLayout"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:exl_collapseHeight=
"45dp"
app:exl_duration=
"100"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<ImageView
android:id=
"@+id/expandIcon"
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:background=
"@drawable/top_rounded_background"
android:src=
"@drawable/iphone_swipe_up"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.498"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.github.chuross.library.ExpandableLayout>
<ProgressBar
android:id=
"@+id/progress_bar"
android:layout_width=
"50dp"
android:layout_height=
"50dp"
android:layout_marginStart=
"8dp"
android:layout_marginTop=
"8dp"
android:layout_marginEnd=
"8dp"
android:visibility=
"gone"
tools:visibility=
"visible"
style=
"?android:attr/progressBarStyle"
android:indeterminateDrawable=
"@drawable/progress_bar_material"
android:layout_marginBottom=
"8dp"
app:layout_constraintBottom_toBottomOf=
"@+id/explandableLayout"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
app/src/main/res/layout/activity_adjust_image.xml
0 → 100644
View file @
159a0f3e
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@android:color/white"
tools:context=
".activities.AdjustImage"
>
<ImageView
android:id=
"@+id/imageView4"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:adjustViewBounds=
"true"
android:background=
"@drawable/bottom_curve_background"
app:layout_constraintBottom_toTopOf=
"@+id/guideline6"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.0"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
android:id=
"@+id/adjustImage"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_marginStart=
"32dp"
android:layout_marginTop=
"16dp"
android:layout_marginEnd=
"32dp"
android:layout_marginBottom=
"24dp"
android:adjustViewBounds=
"true"
android:scaleType=
"fitCenter"
app:layout_constraintBottom_toTopOf=
"@+id/guideline6"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.0"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_marginStart=
"16dp"
android:layout_marginTop=
"16dp"
android:layout_marginEnd=
"16dp"
android:layout_marginBottom=
"16dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/imageView4"
>
<TextView
android:id=
"@+id/textView20"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"32dp"
android:layout_marginTop=
"24dp"
android:fontFamily=
"@font/gemunulibrebold"
android:text=
"Blur"
android:textColor=
"@color/darkAsh"
android:textSize=
"17sp"
android:textStyle=
"bold"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<com.warkiz.tickseekbar.TickSeekBar
android:id=
"@+id/listener"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"8dp"
android:layout_marginRight=
"@dimen/_32sdp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"@+id/textView20"
app:layout_constraintTop_toBottomOf=
"@+id/textView20"
app:tsb_max=
"25"
app:tsb_show_tick_marks_type=
"none"
app:tsb_thumb_color=
"@color/darkAsh"
app:tsb_thumb_size=
"20dp"
app:tsb_ticks_count=
"1"
app:tsb_track_background_color=
"@color/darkAsh"
app:tsb_track_background_size=
"20dp"
app:tsb_track_progress_color=
"#FFFFFF"
app:tsb_track_progress_size=
"3dp"
/>
<TextView
android:id=
"@+id/textView21"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"8dp"
android:fontFamily=
"@font/gemunulibrebold"
android:text=
"Saturation"
android:textColor=
"@color/darkAsh"
android:textSize=
"17sp"
android:textStyle=
"bold"
app:layout_constraintStart_toStartOf=
"@+id/listener"
app:layout_constraintTop_toBottomOf=
"@+id/listener"
/>
<com.warkiz.tickseekbar.TickSeekBar
android:id=
"@+id/listener2"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"8dp"
app:layout_constraintEnd_toEndOf=
"@+id/listener"
app:layout_constraintStart_toStartOf=
"@+id/textView21"
app:layout_constraintTop_toBottomOf=
"@+id/textView21"
app:tsb_max=
"5"
app:tsb_show_tick_marks_type=
"none"
app:tsb_thumb_color=
"@color/darkAsh"
app:tsb_thumb_size=
"20dp"
app:tsb_ticks_count=
"1"
app:tsb_track_background_color=
"@color/darkAsh"
app:tsb_track_background_size=
"9dp"
app:tsb_track_progress_color=
"#FFFFFF"
app:tsb_track_progress_size=
"3dp"
/>
<TextView
android:id=
"@+id/textView22"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"8dp"
android:fontFamily=
"@font/gemunulibrebold"
android:text=
"Brightness"
android:textColor=
"@color/darkAsh"
android:textSize=
"17sp"
android:textStyle=
"bold"
app:layout_constraintStart_toStartOf=
"@+id/listener2"
app:layout_constraintTop_toBottomOf=
"@+id/listener2"
/>
<com.warkiz.tickseekbar.TickSeekBar
android:id=
"@+id/listener3"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"8dp"
app:layout_constraintEnd_toEndOf=
"@+id/listener2"
app:layout_constraintHorizontal_bias=
"0.25"
app:layout_constraintStart_toStartOf=
"@+id/textView22"
app:layout_constraintTop_toBottomOf=
"@+id/textView22"
app:tsb_max=
"250"
app:tsb_show_tick_marks_type=
"none"
app:tsb_thumb_color=
"@color/darkAsh"
app:tsb_thumb_size=
"20dp"
app:tsb_ticks_count=
"1"
app:tsb_track_background_color=
"@color/darkAsh"
app:tsb_track_background_size=
"9dp"
app:tsb_track_progress_color=
"#FFFFFF"
app:tsb_track_progress_size=
"3dp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.Guideline
android:id=
"@+id/guideline6"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
app:layout_constraintGuide_percent=
"0.44"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/activity_draw_on_bitmap.xml
0 → 100644
View file @
159a0f3e
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".activities.DrawOnBitmapActivity"
>
<com.sba.sinhalaphotoeditor.custom.views.PaintView
android:id=
"@+id/paintView"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
app:layout_constraintBottom_toTopOf=
"@+id/explandableLayout"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.0"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/toolbar"
/>
<androidx.appcompat.widget.Toolbar
android:id=
"@+id/toolbar"
style=
"@android:style/Widget.ActionBar"
android:layout_width=
"match_parent"
android:layout_height=
"?attr/actionBarSize"
android:background=
"@color/material_dark_blue"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"1.0"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<TextView
android:id=
"@+id/tool_bar_title"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"8dp"
android:ellipsize=
"end"
android:gravity=
"left"
android:maxLines=
"1"
android:text=
"Draw"
android:textColor=
"@android:color/white"
android:textSize=
"19sp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@+id/img_undo_container"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/img_done_container"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
>
<ImageView
android:id=
"@+id/img_done"
android:layout_width=
"32dp"
android:layout_height=
"0dp"
android:layout_marginStart=
"8dp"
android:layout_marginTop=
"8dp"
android:layout_marginEnd=
"8dp"
android:layout_marginBottom=
"8dp"
android:src=
"@drawable/saveimage"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/img_redo_container"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@+id/img_done_container"
app:layout_constraintTop_toTopOf=
"parent"
>
<ImageView
android:id=
"@+id/img_redo"
android:layout_width=
"32dp"
android:layout_height=
"0dp"
android:layout_marginStart=
"8dp"
android:layout_marginTop=
"8dp"
android:layout_marginEnd=
"8dp"
android:layout_marginBottom=
"8dp"
android:src=
"@drawable/redo"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintVertical_bias=
"0.0"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/img_undo_container"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@+id/img_redo_container"
app:layout_constraintTop_toTopOf=
"parent"
>
<ImageView
android:id=
"@+id/img_undo"
android:layout_width=
"32dp"
android:layout_height=
"0dp"
android:layout_marginStart=
"8dp"
android:layout_marginTop=
"8dp"
android:layout_marginEnd=
"8dp"
android:layout_marginBottom=
"8dp"
android:src=
"@drawable/undo"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintVertical_bias=
"0.0"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.appcompat.widget.Toolbar>
<com.github.chuross.library.ExpandableLayout
android:id=
"@+id/explandableLayout"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:exl_collapseHeight=
"45dp"
app:exl_duration=
"100"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<ImageView
android:id=
"@+id/expandIcon"
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:background=
"@drawable/top_rounded_background"
android:src=
"@drawable/iphone_swipe_up"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.498"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.github.chuross.library.ExpandableLayout>
<ProgressBar
android:id=
"@+id/loading"
android:layout_width=
"50dp"
android:layout_height=
"50dp"
app:layout_constraintBottom_toBottomOf=
"@+id/paintView"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
android:visibility=
"gone"
tools:visibility=
"visible"
style=
"?android:attr/progressBarStyle"
android:indeterminateDrawable=
"@drawable/progress_bar_material"
app:layout_constraintTop_toBottomOf=
"@+id/toolbar"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/activity_image_saving.xml
0 → 100644
View file @
159a0f3e
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@android:color/white"
>
<com.google.android.material.imageview.ShapeableImageView
android:id=
"@+id/userSavingImage"
android:layout_width=
"0dp"
android:layout_height=
"0dp"
android:adjustViewBounds=
"true"
android:background=
"@android:color/transparent"
android:scaleType=
"centerCrop"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintBottom_toTopOf=
"@+id/guideline8"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
android:id=
"@+id/shareImageView"
android:layout_width=
"match_parent"
android:layout_height=
"70dp"
android:layout_marginStart=
"24dp"
android:layout_marginTop=
"16dp"
android:layout_marginEnd=
"24dp"
android:background=
"@drawable/round_bg_ash"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.0"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"@+id/guideline8"
/>
<ImageView
android:id=
"@+id/shareFinalImage"
android:layout_width=
"@dimen/_40sdp"
android:layout_height=
"@dimen/_40sdp"
android:layout_marginStart=
"@dimen/_32sdp"
android:src=
"@drawable/share"
app:layout_constraintBottom_toBottomOf=
"@+id/shareImageView"
app:layout_constraintStart_toStartOf=
"@+id/shareImageView"
app:layout_constraintTop_toTopOf=
"@+id/shareImageView"
/>
<TextView
android:id=
"@+id/fromGalery"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:fontFamily=
"@font/bindumathi"
android:gravity=
"center"
android:text=
"@string/share_image_text"
android:textColor=
"@color/colorPrimary"
android:textSize=
"19sp"
android:textStyle=
"bold"
android:typeface=
"sans"
app:layout_constraintBottom_toBottomOf=
"@+id/shareFinalImage"
app:layout_constraintStart_toStartOf=
"@+id/downloadImageText"
app:layout_constraintTop_toTopOf=
"@+id/shareFinalImage"
/>
<ImageView
android:id=
"@+id/downloadImageView"
android:layout_width=
"match_parent"
android:layout_height=
"70dp"
android:layout_marginStart=
"24dp"
android:layout_marginTop=
"8dp"
android:layout_marginEnd=
"24dp"
android:background=
"@drawable/round_bg_ash"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.0"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/shareImageView"
/>
<ImageView
android:id=
"@+id/saveFinalImage"
android:layout_width=
"@dimen/_40sdp"
android:layout_height=
"@dimen/_40sdp"
android:layout_marginStart=
"@dimen/_32sdp"
android:src=
"@drawable/download"
app:layout_constraintBottom_toBottomOf=
"@+id/downloadImageView"
app:layout_constraintStart_toStartOf=
"@+id/downloadImageView"
app:layout_constraintTop_toBottomOf=
"@+id/shareImageView"
app:layout_constraintVertical_bias=
"0.566"
/>
<TextView
android:id=
"@+id/downloadImageText"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"@dimen/_32sdp"
android:fontFamily=
"@font/bindumathi"
android:gravity=
"center"
android:text=
"@string/download_image_text"
android:textColor=
"@color/colorPrimary"
android:textSize=
"19sp"
android:textStyle=
"bold"
android:typeface=
"sans"
app:layout_constraintBottom_toBottomOf=
"@+id/saveFinalImage"
app:layout_constraintStart_toEndOf=
"@+id/saveFinalImage"
app:layout_constraintTop_toTopOf=
"@+id/saveFinalImage"
/>
<androidx.constraintlayout.widget.Guideline
android:id=
"@+id/guideline8"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
app:layout_constraintGuide_percent=
"0.5"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/filter_row.xml
0 → 100644
View file @
159a0f3e
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"wrap_content"
xmlns:tools=
"http://schemas.android.com/tools"
android:background=
"@android:color/transparent"
android:layout_height=
"wrap_content"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
>
<de.hdodenhof.circleimageview.CircleImageView
android:id=
"@+id/filter_preview"
android:layout_width=
"@dimen/_40sdp"
android:layout_height=
"@dimen/_40sdp"
android:layout_marginTop=
"4dp"
android:src=
"@drawable/loading_image_placeholder"
app:civ_border_color=
"#FFFFFF"
app:civ_border_width=
"2dp"
app:layout_constraintEnd_toEndOf=
"@+id/filter_name"
app:layout_constraintStart_toStartOf=
"@+id/filter_name"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
android:id=
"@+id/filter_name"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"8dp"
android:layout_marginTop=
"2dp"
android:layout_marginEnd=
"8dp"
android:layout_marginBottom=
"2dp"
android:gravity=
"center"
android:maxLines=
"1"
android:minWidth=
"55dp"
android:textColor=
"@android:color/white"
android:textSize=
"12sp"
android:textStyle=
"bold"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.0"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/filter_preview"
app:layout_constraintVertical_bias=
"1.0"
tools:text=
"Filter Name"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment