3
3
import android .Manifest ;
4
4
import android .annotation .SuppressLint ;
5
5
import android .content .Context ;
6
+ import android .content .DialogInterface ;
6
7
import android .content .Intent ;
7
8
import android .graphics .Bitmap ;
8
9
import android .graphics .Typeface ;
14
15
import android .support .v4 .content .ContextCompat ;
15
16
import android .support .v4 .content .res .ResourcesCompat ;
16
17
import android .support .v4 .provider .FontsContractCompat ;
18
+ import android .support .v7 .app .AlertDialog ;
17
19
import android .util .Log ;
18
20
import android .view .View ;
19
21
import android .widget .ImageView ;
@@ -94,7 +96,7 @@ protected void onCreate(Bundle savedInstanceState) {
94
96
mPhotoEditor = new PhotoEditor .Builder (this , mPhotoEditorView )
95
97
.setPinchTextScalable (true ) // set flag to make text scalable when pinch
96
98
.setDefaultTextTypeface (mTextRobotoTf )
97
- .setDefaultEmojiTypeface (mEmojiTypeFace )
99
+ // .setDefaultEmojiTypeface(mEmojiTypeFace)
98
100
.build (); // build photo editor sdk
99
101
100
102
mPhotoEditor .setOnPhotoEditorListener (this );
@@ -111,6 +113,7 @@ private void initViews() {
111
113
ImageView imgSticker ;
112
114
ImageView imgEmo ;
113
115
ImageView imgSave ;
116
+ ImageView imgClose ;
114
117
115
118
mPhotoEditorView = findViewById (R .id .photoEditorView );
116
119
mTxtCurrentTool = findViewById (R .id .txtCurrentTool );
@@ -144,6 +147,9 @@ private void initViews() {
144
147
145
148
imgSave = findViewById (R .id .imgSave );
146
149
imgSave .setOnClickListener (this );
150
+
151
+ imgClose = findViewById (R .id .imgClose );
152
+ imgClose .setOnClickListener (this );
147
153
}
148
154
149
155
@ Override
@@ -184,6 +190,7 @@ public void onClick(View view) {
184
190
switch (view .getId ()) {
185
191
case R .id .imgPencil :
186
192
mPhotoEditor .setBrushDrawingMode (true );
193
+ mTxtCurrentTool .setText (R .string .label_brush );
187
194
mPropertiesBSFragment .show (getSupportFragmentManager (), mPropertiesBSFragment .getTag ());
188
195
break ;
189
196
case R .id .btnEraser :
@@ -213,6 +220,14 @@ public void onDone(String inputText, int colorCode) {
213
220
saveImage ();
214
221
break ;
215
222
223
+ case R .id .imgClose :
224
+ if (!mPhotoEditor .isCacheEmpty ()) {
225
+ showSaveDialog ();
226
+ } else {
227
+ finishAffinity ();
228
+ }
229
+ break ;
230
+
216
231
case R .id .imgSticker :
217
232
mStickerBSFragment .show (getSupportFragmentManager (), mStickerBSFragment .getTag ());
218
233
break ;
@@ -324,4 +339,30 @@ public void isPermissionGranted(boolean isGranted, String permission) {
324
339
saveImage ();
325
340
}
326
341
}
342
+
343
+ private void showSaveDialog () {
344
+ AlertDialog .Builder builder = new AlertDialog .Builder (this );
345
+ builder .setMessage ("Are you want to exit without saving image ?" );
346
+ builder .setPositiveButton ("Save" , new DialogInterface .OnClickListener () {
347
+ @ Override
348
+ public void onClick (DialogInterface dialog , int which ) {
349
+ saveImage ();
350
+ }
351
+ });
352
+ builder .setNegativeButton ("Cancel" , new DialogInterface .OnClickListener () {
353
+ @ Override
354
+ public void onClick (DialogInterface dialog , int which ) {
355
+ dialog .dismiss ();
356
+ }
357
+ });
358
+
359
+ builder .setNeutralButton ("Discard" , new DialogInterface .OnClickListener () {
360
+ @ Override
361
+ public void onClick (DialogInterface dialog , int which ) {
362
+ finishAffinity ();
363
+ }
364
+ });
365
+ builder .create ().show ();
366
+
367
+ }
327
368
}
0 commit comments