11package io .github .subhamtyagi .quickcalculation ;
22
3+ import android .app .AlarmManager ;
4+ import android .app .PendingIntent ;
5+ import android .content .BroadcastReceiver ;
6+ import android .content .Context ;
37import android .content .Intent ;
8+ import android .os .Build ;
49import android .os .Bundle ;
510import android .view .Menu ;
611import android .view .MenuItem ;
1116import android .widget .Spinner ;
1217import android .widget .Toast ;
1318
19+ import androidx .annotation .RequiresApi ;
1420import androidx .appcompat .app .AppCompatActivity ;
1521
16- import io .github .subhamtyagi .quickcalculation .utils .Constants ;
22+ import java .util .Calendar ;
23+
1724import io .github .subhamtyagi .quickcalculation .utils .CrashUtils ;
25+ import io .github .subhamtyagi .quickcalculation .utils .SpUtil ;
26+ import io .github .subhamtyagi .quickcalculation .utils .Utils ;
1827
1928
2029public class LaunchActivity extends AppCompatActivity {
2130
31+ AlarmManager manager ;
32+ PendingIntent pendingIntent ;
2233 private Spinner operationsSpinner , timerSpinner ;
2334 private String operationName = "multiply" , timer = "30" ;
2435 private EditText lower1 , lower2 , upper1 , upper2 ;
2536
2637 @ Override
2738 protected void onCreate (Bundle savedInstanceState ) {
2839 super .onCreate (savedInstanceState );
29- setContentView (R .layout .activity_launch );
30-
3140 new CrashUtils (getApplicationContext (), "" );
41+ SpUtil .getInstance ().init (this );
42+ /*setTheme(Utils.getTheme(this));*/
43+
44+ setContentView (R .layout .activity_launch );
3245
3346 operationsSpinner = findViewById (R .id .spinner_operator );
3447 timerSpinner = findViewById (R .id .spinner_timer );
@@ -93,8 +106,8 @@ public void onNothingSelected(AdapterView<?> adapterView) {
93106
94107 findViewById (R .id .btn_start ).setOnClickListener (view -> {
95108 Intent i = new Intent (this , QuizActivity .class );
96- i .putExtra (Constants .OPERATIONS , operationName );
97- i .putExtra (Constants .TIME , timer );
109+ i .putExtra (Utils .OPERATIONS , operationName );
110+ i .putExtra (Utils .TIME , timer );
98111 String l1 = getValueOf (lower1 ),
99112 l2 = getValueOf (lower2 ),
100113 u2 = getValueOf (upper2 ),
@@ -115,24 +128,51 @@ public void onNothingSelected(AdapterView<?> adapterView) {
115128 int iU2 = Integer .parseInt (u2 );
116129 if (iU2 >= iL2 ) {
117130 if (iU1 >= iL1 ) {
118- i .putExtra (Constants .LOWER_1 , iL1 );
119- i .putExtra (Constants .LOWER_2 , iL2 );
120- i .putExtra (Constants .UPPER_2 , iU2 );
121- i .putExtra (Constants .UPPER_1 , iU1 );
131+ i .putExtra (Utils .LOWER_1 , iL1 );
132+ i .putExtra (Utils .LOWER_2 , iL2 );
133+ i .putExtra (Utils .UPPER_2 , iU2 );
134+ i .putExtra (Utils .UPPER_1 , iU1 );
122135 startActivity (i );
123136 overridePendingTransition (android .R .anim .fade_in , android .R .anim .fade_out );
124137 } else {
125138 upper1 .requestFocus ();
126139 Toast .makeText (this , getResources ().getString (R .string .upper_value_must_be_greater ), Toast .LENGTH_SHORT ).show ();
127140 }
128- }else {
141+ } else {
129142 upper2 .requestFocus ();
130143 Toast .makeText (this , getResources ().getString (R .string .upper_value_must_be_greater ), Toast .LENGTH_SHORT ).show ();
131144 }
132145 }
133146 });
134147
148+ }
149+
150+ @ RequiresApi (api = Build .VERSION_CODES .M )
151+ private void setNotificationIfAny () {
152+ boolean isNotificationEnable = SpUtil .getInstance ().getBoolean (getString (R .string .pf_notification_switch ), false );
153+ Intent alarmIntent = new Intent (this , AlarmReceiver .class );
154+ if (pendingIntent != null && manager != null ) {
155+ manager .cancel (pendingIntent );
156+ } else {
157+ pendingIntent = PendingIntent .getBroadcast (this , 0 , alarmIntent , 0 );
158+ manager = (AlarmManager ) getSystemService (Context .ALARM_SERVICE );
159+ }
135160
161+ if (isNotificationEnable ) {
162+ Calendar calendar = Calendar .getInstance ();
163+ calendar .setTimeInMillis (System .currentTimeMillis ());
164+ int hour = SpUtil .getInstance ().getInt (getString (R .string .key_notification_hours ), 8 );
165+ int min = SpUtil .getInstance ().getInt (getString (R .string .key_notification_minutes ), 0 );
166+ calendar .set (Calendar .HOUR_OF_DAY , hour );
167+ calendar .set (Calendar .MINUTE , min );
168+ calendar .set (Calendar .SECOND , 1 );
169+ manager .setRepeating (AlarmManager .RTC_WAKEUP ,
170+ calendar .getTimeInMillis (),
171+ AlarmManager .INTERVAL_DAY , pendingIntent );
172+
173+ } else {
174+ manager .cancel (pendingIntent );
175+ }
136176 }
137177
138178 public void setAdapters () {
@@ -162,8 +202,31 @@ public boolean onCreateOptionsMenu(Menu menu) {
162202 public boolean onOptionsItemSelected (MenuItem item ) {
163203 int id = item .getItemId ();
164204 if (id == R .id .action_settings ) {
205+ SpUtil .getInstance ().putBoolean (getString (R .string .is_theme_changed ), false );
206+ startActivity (new Intent (this , SettingsActivity .class ));
165207 return true ;
166208 }
167209 return super .onOptionsItemSelected (item );
168210 }
211+
212+ @ Override
213+ protected void onResume () {
214+ super .onResume ();
215+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .M ) {
216+ setNotificationIfAny ();
217+ }
218+
219+ /* if (SpUtil.getInstance().getBoolean(getString(R.string.is_theme_changed),false)){
220+ SpUtil.getInstance().putBoolean(getString(R.string.is_theme_changed),false);
221+ recreate();
222+ }*/
223+ }
224+
225+ public static class AlarmReceiver extends BroadcastReceiver {
226+ @ Override
227+ public void onReceive (Context context , Intent intent ) {
228+ // send notification
229+ //
230+ }
231+ }
169232}
0 commit comments