diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 0c0c338..9c96b2b 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -2,6 +2,9 @@ + + + diff --git a/app/src/main/java/uk/kagurach/android101/MainActivity.java b/app/src/main/java/uk/kagurach/android101/MainActivity.java index e168147..ad82dd5 100644 --- a/app/src/main/java/uk/kagurach/android101/MainActivity.java +++ b/app/src/main/java/uk/kagurach/android101/MainActivity.java @@ -6,10 +6,12 @@ import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.view.View; +import android.widget.Button; import android.widget.TextView; import android.Manifest; import androidx.activity.EdgeToEdge; +import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; @@ -29,33 +31,42 @@ public class MainActivity extends AppCompatActivity { v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); - if (Build.VERSION.SDK_INT >= 33) { - if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.POST_NOTIFICATIONS}, 101); - } - } - } @Override protected void onResume(){ super.onResume(); - } - private void goNextPage(){ - TextView textView = findViewById(R.id.tv_hello); - textView.setText("3秒后进入下个页面"); - new Handler().postDelayed(mGoNext,3000); - } - - private final Runnable mGoNext = new Runnable() { - @Override - public void run() { - startActivity(new Intent(MainActivity.this,MainActivity2.class)); + TextView tv = findViewById(R.id.tv_hello); + textViewAppendString(tv,"Starting Kagura Init"); + if (Build.VERSION.SDK_INT >= 33) { + textViewAppendString(tv,"Find api > 33, checking permission"); + if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) { + textViewAppendString(tv,"Acquiring POST_NOTIFICATIONS"); + ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.POST_NOTIFICATIONS}, 101); + } + textViewAppendString(tv,"Check Finished"); } - }; + textViewAppendString(tv,"*************************\nfinished"); + + + Button button = findViewById(R.id.Page1NextPage); + button.setEnabled(true); + } public void jumpToNext(View view) { - goNextPage(); + Button button = findViewById(R.id.Page1NextPage); + button.setEnabled(true); + Intent myIntent = new Intent(this, MainActivity2.class); + startActivity(myIntent); + } + + private void textViewAppendString(@NonNull TextView tv, String s){ + String last = tv.getText().toString(); + if (!last.endsWith("\n")){ + last += "\n"; + } + last += s; + tv.setText(last); } } \ No newline at end of file diff --git a/app/src/main/java/uk/kagurach/android101/MainActivity2.java b/app/src/main/java/uk/kagurach/android101/MainActivity2.java index 7aed458..d45ed9d 100644 --- a/app/src/main/java/uk/kagurach/android101/MainActivity2.java +++ b/app/src/main/java/uk/kagurach/android101/MainActivity2.java @@ -1,11 +1,14 @@ package uk.kagurach.android101; +import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.util.TypedValue; +import android.view.MotionEvent; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; @@ -18,6 +21,7 @@ import androidx.core.view.WindowInsetsCompat; public class MainActivity2 extends AppCompatActivity { + int _text_size = 70; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -41,17 +45,17 @@ public class MainActivity2 extends AppCompatActivity { public void set70sp(View view) { TextView t = findViewById(R.id.test2strview); - t.setTextSize(TypedValue.COMPLEX_UNIT_SP,70); + t.setTextSize(TypedValue.COMPLEX_UNIT_SP,_text_size); } public void set70dp(View view) { TextView t = findViewById(R.id.test2strview); - t.setTextSize(TypedValue.COMPLEX_UNIT_DIP,70); + t.setTextSize(TypedValue.COMPLEX_UNIT_DIP,_text_size); } public void set70px(View view) { TextView t = findViewById(R.id.test2strview); - t.setTextSize(TypedValue.COMPLEX_UNIT_PX,70); + t.setTextSize(TypedValue.COMPLEX_UNIT_PX,_text_size); } public void setColor(View view) { @@ -66,7 +70,10 @@ public class MainActivity2 extends AppCompatActivity { _g = Integer.parseInt(g_edit.getText().toString()); _b = Integer.parseInt(b_edit.getText().toString()); } catch (NumberFormatException e){ - Log.e("page2.setcolor",e.toString()); + NotificationHelper helper = new NotificationHelper(this); + helper.createNotificationChannel(); + helper.pushNotification("Page 2: Error Setting Color", + e.toString()); return; } if (_r>=0&&_g>=0&&_b>=0&&_r<=255&&_g<=255&&_b<=255){ @@ -79,15 +86,53 @@ public class MainActivity2 extends AppCompatActivity { } } + public void setText(View view) { + TextView textView = findViewById(R.id.test2strview); + EditText editText = findViewById(R.id.Page2SetTestText); + String s = "Test Text"; + try { + s = editText.getText().toString(); + }catch (Exception e){ + NotificationHelper helper = new NotificationHelper(this); + helper.createNotificationChannel(); + helper.pushNotification("Page 2: Error Setting Test Text", + e.toString()); + return; + } + textView.setText(s); + } + public void goNext() { Intent myIntent = new Intent(this, Page3.class); startActivity(myIntent); - }; + } public void goPrev() { Intent myIntent = new Intent(this, MainActivity.class); startActivity(myIntent); - }; + } + + public void setSize(View view) { + Button sp = findViewById(R.id.Page2SetSP); + Button dp = findViewById(R.id.Page2SetDP); + Button px = findViewById(R.id.Page2SetPX); + + EditText ed = findViewById(R.id.P2SetTextSize); + int size = 70; + try { + size = Integer.parseInt(ed.getText().toString()); + }catch (Exception e){ + NotificationHelper helper = new NotificationHelper(this); + helper.createNotificationChannel(); + helper.pushNotification("Page 2: Error Setting Text Size", + e.toString()); + return; + } + _text_size = size; + sp.setText(size +"SP"); + dp.setText(size +"DP"); + px.setText(size +"PX"); + } final class PageButtonHandler implements View.OnClickListener { @@ -105,5 +150,15 @@ public class MainActivity2 extends AppCompatActivity { return false; } } + + // Fix: hide keyboard + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + if (getCurrentFocus() != null) { + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); + } + return super.dispatchTouchEvent(ev); + } } diff --git a/app/src/main/java/uk/kagurach/android101/NotificationHelper.kt b/app/src/main/java/uk/kagurach/android101/NotificationHelper.kt index 4f2bff0..f165f92 100644 --- a/app/src/main/java/uk/kagurach/android101/NotificationHelper.kt +++ b/app/src/main/java/uk/kagurach/android101/NotificationHelper.kt @@ -15,12 +15,14 @@ class NotificationHelper(_ctx: Context) { val CHANNEL_ID = "DBG_PUSHER" val name = "Debug Pusher" var ctx: Context = _ctx - var notifyID = 1; - var rng = Random(114514); + companion object { // Make notify id always increase + var notifyID = 1 + } + private val notificationManager = getSystemService(ctx,NotificationManager::class.java) as NotificationManager - public fun pushNotification(title:String,content:String) { + fun pushNotification(title:String,content:String) { val builder = NotificationCompat.Builder(ctx, CHANNEL_ID) .setSmallIcon(R.drawable.ic_launcher_foreground) .setContentTitle(title) @@ -39,15 +41,7 @@ class NotificationHelper(_ctx: Context) { return } notify(notifyID, builder.build()) - val lastNotifyID = notifyID; - while (notifyID==lastNotifyID){ - notifyID = rng.nextInt() - if (notifyID<=0){ - notifyID = -notifyID - notifyID += 1 - } - rng = Random(notifyID) - } + notifyID += 1 } } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 8cbeed0..a0a7698 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -12,22 +12,30 @@ android:layout_height="match_parent" android:orientation="vertical"> + +