Skip to content

Commit

Permalink
better way to start activities
Browse files Browse the repository at this point in the history
  • Loading branch information
DevEmperor committed Oct 2, 2024
1 parent 92157b7 commit c1f7e6e
Show file tree
Hide file tree
Showing 11 changed files with 232 additions and 208 deletions.
2 changes: 1 addition & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
android:exported="false"
android:taskAffinity="" />
<activity
android:name=".activities.ImageActivity"
android:name=".activities.GalleryActivity"
android:exported="false"
android:taskAffinity="" />
<activity
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,10 @@ protected void onCreate(Bundle savedInstanceState) {
if (lastVersionCode < 23) md = md.concat(getString(R.string.changelog_md_23));
if (lastVersionCode < 22) md = md.concat(getString(R.string.changelog_md_22));
if (lastVersionCode < 21) md = md.concat(getString(R.string.changelog_md_21));

markwon.setMarkdown(changelogTv, md);
System.out.println(md);
sp.edit().putInt("net.devemperor.wristassist.last_version_code", versionCode).apply();

changelogSv.requestFocus();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ protected void onCreate(Bundle savedInstanceState) {
chatLv.requestFocus();

if (getIntent().getLongExtra("net.devemperor.wristassist.chatId", -1) != -1) {
long id = getIntent().getLongExtra("net.devemperor.wristassist.chatId", -1);
id = getIntent().getLongExtra("net.devemperor.wristassist.chatId", -1);
titleTv.setText(chatHistoryDatabaseHelper.getTitle(id));
titleTv.setVisibility(View.VISIBLE);
saveResetBtn.setVisibility(View.VISIBLE);
Expand All @@ -147,7 +147,6 @@ protected void onCreate(Bundle savedInstanceState) {
saveResetBtn.setVisibility(View.VISIBLE);
}
saveThisChat = true;
this.id = id;

titleTv.setOnClickListener(v -> chatLv.setSelection(chatAdapter.getCount() + 1));

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package net.devemperor.wristassist.activities;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
Expand All @@ -9,6 +8,10 @@
import android.widget.TextView;
import android.widget.Toast;

import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;

import net.devemperor.wristassist.R;
import net.devemperor.wristassist.database.ChatHistoryDatabaseHelper;

Expand All @@ -18,7 +21,7 @@
import java.text.SimpleDateFormat;
import java.util.Locale;

public class EditChatActivity extends Activity {
public class EditChatActivity extends AppCompatActivity {

ScrollView editChatSv;
TextView titleTv;
Expand All @@ -29,6 +32,7 @@ public class EditChatActivity extends Activity {

ChatHistoryDatabaseHelper chatHistoryDatabaseHelper;
long id;
ActivityResultLauncher<Intent> editTitleLauncher;

@Override
protected void onCreate(Bundle savedInstanceState) {
Expand Down Expand Up @@ -56,26 +60,22 @@ protected void onCreate(Bundle savedInstanceState) {
throw new RuntimeException(e);
}

editChatSv.requestFocus();
}
editTitleLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
if (result.getResultCode() == RESULT_OK && result.getData() != null) {
String content = result.getData().getStringExtra("net.devemperor.wristassist.input.content");
chatHistoryDatabaseHelper.setTitle(id, content);
titleTv.setText(content);
}
});

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

if (resultCode != RESULT_OK) return;
if (requestCode == 1337) {
String content = data.getStringExtra("net.devemperor.wristassist.input.content");
chatHistoryDatabaseHelper.setTitle(id, content);
titleTv.setText(content);
}
editChatSv.requestFocus();
}

public void editTitle(View view) {
Intent intent = new Intent(this, InputActivity.class);
intent.putExtra("net.devemperor.wristassist.input.title", getString(R.string.wristassist_edit_chat_title));
intent.putExtra("net.devemperor.wristassist.input.content", titleTv.getText().toString());
startActivityForResult(intent, 1337);
editTitleLauncher.launch(intent);
}

public void deleteChat(View view) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
package net.devemperor.wristassist.activities;

import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;

import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityOptionsCompat;
import androidx.core.view.InputDeviceCompat;
import androidx.core.view.MotionEventCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.wear.widget.WearableRecyclerView;

import net.devemperor.wristassist.R;
import net.devemperor.wristassist.adapters.ImageAdapter;
import net.devemperor.wristassist.database.ImageModel;
import net.devemperor.wristassist.database.ImagesDatabaseHelper;

import java.util.List;

public class GalleryActivity extends AppCompatActivity {

ImagesDatabaseHelper imagesDatabaseHelper;

WearableRecyclerView galleryWrv;
List<ImageModel> imageData;
ImageAdapter imageAdapter;

int currentOpenPosition = -1;
ActivityResultLauncher<Intent> inputLauncher;
ActivityResultLauncher<Intent> createImageLauncher;
ActivityResultLauncher<Intent> openImageLauncher;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image);

imagesDatabaseHelper = new ImagesDatabaseHelper(this);

galleryWrv = findViewById(R.id.activity_image_gallery_wrv);
galleryWrv.setEdgeItemsCenteringEnabled(true);
galleryWrv.setHasFixedSize(true);
galleryWrv.setLayoutManager(new GridLayoutManager(this, 3));
imageData = imagesDatabaseHelper.getAll();
imageData.add(0, null);

createImageLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
if (result.getResultCode() == RESULT_OK && result.getData() != null) {
int imageId = result.getData().getIntExtra("net.devemperor.wristassist.imageId", -1);
if (imageId != -1) {
imageData.add(1, imagesDatabaseHelper.get(imageId));
imageAdapter.notifyItemInserted(1);
}
}
});
inputLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
if (result.getResultCode() == RESULT_OK && result.getData() != null) {
Intent createImageIntent = new Intent(this, CreateImageActivity.class);
createImageIntent.putExtra("net.devemperor.wristassist.prompt", result.getData().getStringExtra("net.devemperor.wristassist.input.content"));

createImageLauncher.launch(createImageIntent);
}
});
openImageLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
if (result.getResultCode() == RESULT_OK && result.getData() != null) {
if (result.getData().getBooleanExtra("net.devemperor.wristassist.input.image_deleted", false)) {
imageAdapter.getData().remove(currentOpenPosition);
imageAdapter.notifyItemRemoved(currentOpenPosition);
}
}
});

imageAdapter = new ImageAdapter(imageData, (menuPosition, image) -> {
if (menuPosition == 0) {
Intent inputIntent = new Intent(this, InputActivity.class);
inputIntent.putExtra("net.devemperor.wristassist.input.title", getString(R.string.wristassist_describe_image));
inputIntent.putExtra("net.devemperor.wristassist.input.hint", getString(R.string.wristassist_image_hint));
inputIntent.putExtra("net.devemperor.wristassist.input.hands_free", getSharedPreferences("net.devemperor.wristassist", MODE_PRIVATE)
.getBoolean("net.devemperor.wristassist.hands_free", false));

inputLauncher.launch(inputIntent);
} else {
currentOpenPosition = menuPosition;
Intent openImageIntent = new Intent(this, OpenImageActivity.class);
openImageIntent.putExtra("net.devemperor.wristassist.imageId", imageData.get(menuPosition).getId());
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(this, image, "image");

openImageLauncher.launch(openImageIntent, options);
}
});
galleryWrv.setAdapter(imageAdapter);

galleryWrv.requestFocus();
galleryWrv.setOnGenericMotionListener((v, ev) -> {
if (ev.getAction() == MotionEvent.ACTION_SCROLL && ev.isFromSource(InputDeviceCompat.SOURCE_ROTARY_ENCODER)) {
v.scrollBy(0, (int) (galleryWrv.getChildAt(0).getHeight() * -ev.getAxisValue(MotionEventCompat.AXIS_SCROLL)));
return true;
}
return false;
});
}
}

This file was deleted.

Loading

0 comments on commit c1f7e6e

Please sign in to comment.