diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 000000000..26d33521a
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index fb7f4a8a4..b589d56e9 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 000000000..0c0c33838
--- /dev/null
+++ b/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index a2d7c2133..9f47dfb43 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -5,14 +5,15 @@
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index e2ec1fbcf..247f71d9c 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -11,6 +11,11 @@
+
+
+
+
+
@@ -26,25 +31,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/migrations.xml b/.idea/migrations.xml
new file mode 100644
index 000000000..f8051a6f9
--- /dev/null
+++ b/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 70ed5232b..8978d23db 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,50 +1,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 927cc2ecc..000000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 23cabf362..d8a0c6df8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -125,6 +125,7 @@ dependencies {
implementation 'androidx.legacy:legacy-preference-v14:1.0.0'
implementation 'androidx.exifinterface:exifinterface:1.3.3'
implementation 'com.pes.materialcolorpicker:library:1.2.2'
+ implementation 'com.github.widemouth-dz:wmrichtexteditor:2.0.4'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation "androidx.lifecycle:lifecycle-viewmodel:2.5.1"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0ea4fc185..f9c53416e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -61,6 +61,8 @@
+ value) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
+ sharedPreferences.edit().putStringSet(key, value).apply();
+ } else {
+ // Workaround for pre-HC's lack of StringSets
+ putOrderedStringSet(key, value);
+ }
+ }
+
+ public static Set getStringSet(final String key) {
+ return sharedPreferences.getStringSet(key,new HashSet());
+ }
+
+ /**
+ * @param key
+ * @param value
+ */
+ public static void putOrderedStringSet(String key, Set value) {
+ int stringSetLength = 0;
+ if (sharedPreferences.contains(key + LENGTH)) {
+ // First getString what the value was
+ stringSetLength = getInt(key + LENGTH);
+ }
+ putInt(key + LENGTH, value.size());
+ int i = 0;
+ for (String aValue : value) {
+ putString(key + "[" + i + "]", aValue);
+ i++;
+ }
+ for (; i < stringSetLength; i++) {
+ // Remove any remaining values
+ remove(key + "[" + i + "]");
+ }
+ }
+
+ /**
+ * @param key
+ * @param defValue
+ * @return Returns the String Set with HoneyComb compatibility
+ */
+ @TargetApi(Build.VERSION_CODES.HONEYCOMB)
+ public Set getStringSet(final String key, final Set defValue) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
+ return sharedPreferences.getStringSet(key, defValue);
+ } else {
+ // Workaround for pre-HC's missing getStringSet
+ return getOrderedStringSet(key, defValue);
+ }
+ }
+
+ /**
+ * @param key
+ * @param defValue
+ * @return Returns the ordered String Set
+ */
+ public Set getOrderedStringSet(String key, final Set defValue) {
+ if (contains(key + LENGTH)) {
+ LinkedHashSet set = new LinkedHashSet();
+ int stringSetLength = getInt(key + LENGTH);
+ if (stringSetLength >= 0) {
+ for (int i = 0; i < stringSetLength; i++) {
+ set.add(getString(key + "[" + i + "]"));
+ }
+ }
+ return set;
+ }
+ return defValue;
+ }
+
+ // end related methods
+
+ /**
+ * @param key
+ */
+ public static void remove(final String key) {
+ if (contains(key + LENGTH)) {
+ // Workaround for pre-HC's lack of StringSets
+ int stringSetLength = getInt(key + LENGTH);
+ if (stringSetLength >= 0) {
+ sharedPreferences.edit().remove(key + LENGTH).apply();
+ for (int i = 0; i < stringSetLength; i++) {
+ sharedPreferences.edit().remove(key + "[" + i + "]").apply();
+ }
+ }
+ }
+ sharedPreferences.edit().remove(key);
+ }
+
+ /**
+ * @param key
+ * @return Returns if that key exists
+ */
+ public static boolean contains(final String key) {
+ return sharedPreferences.contains(key);
+ }
+
+ /**
+ * Clear all the preferences
+ */
+ public static void clear() {
+ sharedPreferences.edit().clear().apply();
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/de/rampro/activitydiary/ui/generic/EditActivity.java b/app/src/main/java/de/rampro/activitydiary/ui/generic/EditActivity.java
index 53ea4499a..c827c6740 100644
--- a/app/src/main/java/de/rampro/activitydiary/ui/generic/EditActivity.java
+++ b/app/src/main/java/de/rampro/activitydiary/ui/generic/EditActivity.java
@@ -55,6 +55,7 @@
import de.rampro.activitydiary.helpers.JaroWinkler;
import de.rampro.activitydiary.helpers.GraphicsHelper;
import de.rampro.activitydiary.model.DiaryActivity;
+import de.rampro.activitydiary.model.conditions.SPUtils;
/*
* EditActivity to add and modify activities
@@ -73,8 +74,9 @@ public class EditActivity extends BaseActivity implements ActivityHelper.DataCha
private final String COLOR_KEY = "COLOR";
private final String NAME_KEY = "NAME";
+ private final String TAG_KEY = "TAG";
- private EditText mActivityName;
+ private EditText mActivityName,mActivityTag;
private TextInputLayout mActivityNameTIL;
private ImageView mActivityColorImg;
private int mActivityColor;
@@ -281,6 +283,8 @@ private void setBtnTooltip(View view, @Nullable CharSequence tooltipText) {
private void refreshElements() {
if (currentActivity != null) {
mActivityName.setText(currentActivity.getName());
+ mActivityTag.setText(currentActivity.getmTag());
+
getSupportActionBar().setTitle(currentActivity.getName());
mActivityColor = currentActivity.getColor();
} else {
@@ -317,6 +321,7 @@ protected void onCreate(Bundle savedInstanceState) {
setContent(contentView);
mActivityName = (EditText) contentView.findViewById(R.id.edit_activity_name);
+ mActivityTag = (EditText) contentView.findViewById(R.id.edit_activity_tag);
mActivityName.addTextChangedListener(new TextWatcher(){
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@@ -387,6 +392,7 @@ public void onPause() {
public void onSaveInstanceState(Bundle outState) {
outState.putString(NAME_KEY, mActivityName.getText().toString());
outState.putInt(COLOR_KEY, mActivityColor);
+ outState.putString(TAG_KEY, mActivityTag.getText().toString());
// call superclass to save any view hierarchy
super.onSaveInstanceState(outState);
}
@@ -417,9 +423,13 @@ public boolean onOptionsItemSelected(MenuItem item) {
).show();
} else {
if (currentActivity == null) {
- ActivityHelper.helper.insertActivity(new DiaryActivity(-1, mActivityName.getText().toString(), mActivityColor));
+ ActivityHelper.helper.insertActivity(new DiaryActivity(-1, mActivityName.getText().toString(), mActivityColor,mActivityTag.getText().toString()));
+ SPUtils.putString(mActivityName.getText().toString()+mActivityColor,mActivityTag.getText().toString());
} else {
currentActivity.setName(mActivityName.getText().toString());
+ currentActivity.setmTag(mActivityTag.getText().toString());
+ SPUtils.putString(mActivityName.getText().toString()+mActivityColor,mActivityTag.getText().toString());
+
currentActivity.setColor(mActivityColor);
ActivityHelper.helper.updateActivity(currentActivity);
}
diff --git a/app/src/main/java/de/rampro/activitydiary/ui/main/MainActivity.java b/app/src/main/java/de/rampro/activitydiary/ui/main/MainActivity.java
index 3e6d5469d..7ff4835e6 100644
--- a/app/src/main/java/de/rampro/activitydiary/ui/main/MainActivity.java
+++ b/app/src/main/java/de/rampro/activitydiary/ui/main/MainActivity.java
@@ -50,6 +50,8 @@
import androidx.recyclerview.widget.RecyclerView;
import androidx.appcompat.widget.SearchView;
import androidx.recyclerview.widget.StaggeredGridLayoutManager;
+
+import android.text.Html;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.format.DateFormat;
@@ -64,6 +66,8 @@
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
+import android.widget.Button;
+import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
@@ -120,6 +124,9 @@ public class MainActivity extends BaseActivity implements
private int searchRowCount, normalRowCount;
private FloatingActionButton fabNoteEdit;
private FloatingActionButton fabAttachPicture;
+ private FloatingActionButton fabRedPacket;
+ private ImageButton imageRedPacket;
+ private Button closeRedPacket;
private SearchView searchView;
private MenuItem searchMenuItem;
private ViewPager viewPager;
@@ -213,6 +220,28 @@ protected void onCreate(Bundle savedInstanceState) {
fabNoteEdit = (FloatingActionButton) findViewById(R.id.fab_edit_note);
fabAttachPicture = (FloatingActionButton) findViewById(R.id.fab_attach_picture);
+ fabRedPacket = (FloatingActionButton) findViewById(R.id.fab_red_packet);
+
+ imageRedPacket = (ImageButton)findViewById(R.id.image_red_packet);
+ closeRedPacket = (Button) findViewById(R.id.close_red_packet);
+
+ closeRedPacket.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ imageRedPacket.setVisibility(View.INVISIBLE);
+ fabRedPacket.setVisibility(View.INVISIBLE);
+ closeRedPacket.setVisibility(View.INVISIBLE);
+ }
+ });
+ imageRedPacket.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent = new Intent(MainActivity.this, RedPacketActivity.class);
+ // 启动目标Activity
+ startActivity(intent);
+
+ }
+ });
fabNoteEdit.setOnClickListener(v -> {
// Handle the click on the FAB
@@ -412,7 +441,7 @@ public void onActivityChanged(){
ActivityDiaryContract.DiaryActivity.X_START_OF_LAST
},
ActivityDiaryContract.DiaryActivity._DELETED + " = 0 AND "
- + ActivityDiaryContract.DiaryActivity._ID + " = ?",
+ + ActivityDiaryContract.DiaryActivity._ID + " = ?",
new String[] {
Integer.toString(newAct.getId())
},
diff --git a/app/src/main/java/de/rampro/activitydiary/ui/main/NoteEditDialog.java b/app/src/main/java/de/rampro/activitydiary/ui/main/NoteEditDialog.java
index 5a9964964..e3fd2de5c 100644
--- a/app/src/main/java/de/rampro/activitydiary/ui/main/NoteEditDialog.java
+++ b/app/src/main/java/de/rampro/activitydiary/ui/main/NoteEditDialog.java
@@ -25,6 +25,8 @@
import android.os.Bundle;
import androidx.fragment.app.DialogFragment;
import androidx.appcompat.app.AlertDialog;
+
+import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
@@ -32,7 +34,41 @@
import de.rampro.activitydiary.R;
+import com.widemouth.library.toolitem.WMToolAlignment;
+import com.widemouth.library.toolitem.WMToolBackgroundColor;
+import com.widemouth.library.toolitem.WMToolBold;
+import com.widemouth.library.toolitem.WMToolImage;
+import com.widemouth.library.toolitem.WMToolItalic;
+import com.widemouth.library.toolitem.WMToolItem;
+import com.widemouth.library.toolitem.WMToolListBullet;
+import com.widemouth.library.toolitem.WMToolListClickToSwitch;
+import com.widemouth.library.toolitem.WMToolListNumber;
+import com.widemouth.library.toolitem.WMToolQuote;
+import com.widemouth.library.toolitem.WMToolSplitLine;
+import com.widemouth.library.toolitem.WMToolStrikethrough;
+import com.widemouth.library.toolitem.WMToolTextColor;
+import com.widemouth.library.toolitem.WMToolTextSize;
+import com.widemouth.library.toolitem.WMToolUnderline;
+import com.widemouth.library.wmview.WMEditText;
+import com.widemouth.library.wmview.WMToolContainer;
+
public class NoteEditDialog extends DialogFragment {
+ private WMEditText editText;
+ private WMToolContainer toolContainer;
+ private WMToolItem toolBold = new WMToolBold();
+ private WMToolItem toolItalic = new WMToolItalic();
+ private WMToolItem toolUnderline = new WMToolUnderline();
+ private WMToolItem toolStrikethrough = new WMToolStrikethrough();
+ private WMToolItem toolImage = new WMToolImage();
+ private WMToolItem toolTextColor = new WMToolTextColor();
+ private WMToolItem toolBackgroundColor = new WMToolBackgroundColor();
+ private WMToolItem toolTextSize = new WMToolTextSize();
+ private WMToolItem toolListNumber = new WMToolListNumber();
+ private WMToolItem toolListBullet = new WMToolListBullet();
+ private WMToolItem toolAlignment = new WMToolAlignment();
+ private WMToolItem toolQuote = new WMToolQuote();
+ private WMToolItem toolListClickToSwitch = new WMToolListClickToSwitch();
+ private WMToolItem toolSplitLine = new WMToolSplitLine();
private String note;
private EditText input;
private NoteEditDialogListener mListener;
@@ -45,27 +81,25 @@ public interface NoteEditDialogListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
+
Dialog result;
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
-
LayoutInflater inflater = getActivity().getLayoutInflater();
-
builder.setTitle(R.string.dialog_title_note);
View dlgView = inflater.inflate(R.layout.dialog_note_editor, null);
- input = (EditText) dlgView.findViewById(R.id.noteText);
- if(savedInstanceState != null){
- input.setText(savedInstanceState.getString("Note"));
- }else{
- input.setText(note);
- }
- input.setSelection(input.getText().length());
+ editText = (WMEditText) dlgView.findViewById(R.id.WMEditText);
+ toolContainer = (WMToolContainer) dlgView.findViewById(R.id.WMToolContainer);
+
builder.setView(dlgView)
// Add action buttons
+
.setPositiveButton(R.string.dlg_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
- mListener.onNoteEditPositiveClock(input.getText().toString(), NoteEditDialog.this);
+ note = editText.getHtml();
+ System.out.println(note);
+ mListener.onNoteEditPositiveClock(note, NoteEditDialog.this);
}
})
.setNegativeButton(R.string.dlg_cancel, new DialogInterface.OnClickListener() {
@@ -92,9 +126,10 @@ public void onAttach(Context context) {
}
}
- public void setText(String text){
- if(input != null){
- input.setText(text);
+ public void setText(String text) {
+ System.out.println("setText, text: " + text);
+ if(input != null) {
+ input.setText(Html.fromHtml(text));
}
note = text;
}
@@ -112,4 +147,40 @@ public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putString("Note", input.getText().toString());
}
+
+ @Override
+ public void onStart() {
+ super.onStart();
+
+ toolBold = new WMToolBold();
+ toolItalic = new WMToolItalic();
+ toolUnderline = new WMToolUnderline();
+ toolStrikethrough = new WMToolStrikethrough();
+ toolImage = new WMToolImage();
+ toolTextColor = new WMToolTextColor();
+ toolBackgroundColor = new WMToolBackgroundColor();
+ toolTextSize = new WMToolTextSize();
+ toolListNumber = new WMToolListNumber();
+ toolListBullet = new WMToolListBullet();
+ toolAlignment = new WMToolAlignment();
+ toolQuote = new WMToolQuote();
+ toolListClickToSwitch = new WMToolListClickToSwitch();
+ toolSplitLine = new WMToolSplitLine();
+
+ toolContainer.addToolItem(toolImage);
+ toolContainer.addToolItem(toolTextColor);
+ toolContainer.addToolItem(toolBackgroundColor);
+ toolContainer.addToolItem(toolTextSize);
+ toolContainer.addToolItem(toolBold);
+ toolContainer.addToolItem(toolItalic);
+ toolContainer.addToolItem(toolUnderline);
+ toolContainer.addToolItem(toolStrikethrough);
+ toolContainer.addToolItem(toolListNumber);
+ toolContainer.addToolItem(toolListBullet);
+ toolContainer.addToolItem(toolAlignment);
+ toolContainer.addToolItem(toolQuote);
+ toolContainer.addToolItem(toolListClickToSwitch);
+ toolContainer.addToolItem(toolSplitLine);
+ editText.setupWithToolContainer(toolContainer);
+ }
}
diff --git a/app/src/main/java/de/rampro/activitydiary/ui/main/RedPacketActivity.java b/app/src/main/java/de/rampro/activitydiary/ui/main/RedPacketActivity.java
new file mode 100644
index 000000000..9fa890429
--- /dev/null
+++ b/app/src/main/java/de/rampro/activitydiary/ui/main/RedPacketActivity.java
@@ -0,0 +1,215 @@
+/*
+ * ActivityDiary
+ *
+ * Copyright (C) 2024 Raphael Mack http://www.raphael-mack.de
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package de.rampro.activitydiary.ui.main;
+
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.media.MediaPlayer;
+import android.os.Bundle;
+import android.view.MotionEvent;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+import android.view.View;
+import android.widget.Button;
+import android.widget.MediaController;
+
+import java.io.IOException;
+
+import de.rampro.activitydiary.R;
+import de.rampro.activitydiary.ui.generic.BaseActivity;
+
+
+public class RedPacketActivity extends BaseActivity implements
+ MediaController.MediaPlayerControl,
+ MediaPlayer.OnBufferingUpdateListener,
+ SurfaceHolder.Callback{
+ private MediaPlayer mediaPlayer;
+ private MediaController controller;
+ private Button closeTextOnVideo;
+ private Button btnUnderVideo;
+ private int bufferPercentage = 0;
+ @SuppressLint("MissingInflatedId")
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.red_packet_video);
+ mediaPlayer = new MediaPlayer();
+ controller = new MediaController(this);
+ controller.setAnchorView(findViewById(R.id.root_ll));
+ initSurfaceView();
+
+ start();
+
+ closeTextOnVideo = (Button) findViewById(R.id.close_text_on_video);
+ btnUnderVideo = (Button) findViewById(R.id.button_under_video);
+ closeTextOnVideo.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent = new Intent(RedPacketActivity.this, MainActivity.class);
+ // 启动目标Activity
+ startActivity(intent);
+ }
+ });
+ btnUnderVideo.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ start();
+ }
+ });
+
+ }
+
+ private void initSurfaceView() {
+ SurfaceView videoSuf = (SurfaceView) findViewById(R.id.controll_surfaceView);
+ videoSuf.setZOrderOnTop(false);
+ videoSuf.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
+ videoSuf.getHolder().addCallback(this);
+ }
+ @Override
+ protected void onResume() {
+ super.onResume();
+ try {
+ String path = "https://poss-videocloud.cns.com.cn/oss/2021/05/08/chinanews/MEIZI_YUNSHI/onair/25AFA3CA2F394DB38420CC0A44483E82.mp4" ;
+ mediaPlayer.setDataSource(path);
+ mediaPlayer.setOnBufferingUpdateListener(this);
+ //mediaPlayer.prepare();
+
+ controller.setMediaPlayer(this);
+ controller.setEnabled(true);
+
+ }catch (IOException e){
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ if (mediaPlayer.isPlaying()){
+ mediaPlayer.stop();
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (null != mediaPlayer){
+ mediaPlayer.release();
+ mediaPlayer = null;
+ }
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent event) {
+ controller.show();
+ return super.onTouchEvent(event);
+ }
+
+ //MediaPlayer
+ @Override
+ public void onPointerCaptureChanged(boolean hasCapture) {
+
+ }
+ //MediaPlayerControl
+ @Override
+ public void onBufferingUpdate(MediaPlayer mediaPlayer, int i) {
+ bufferPercentage = i;
+ }
+
+ @Override
+ public void start() {
+ if (null != mediaPlayer){
+ mediaPlayer.start();
+ }
+ }
+
+ @Override
+ public void pause() {
+ if (null != mediaPlayer){
+ mediaPlayer.pause();
+ }
+ }
+
+ @Override
+ public int getDuration() {
+ return mediaPlayer.getDuration();
+ }
+
+ @Override
+ public int getCurrentPosition() {
+ return mediaPlayer.getCurrentPosition();
+ }
+
+ @Override
+ public void seekTo(int i) {
+ mediaPlayer.seekTo(i);
+ }
+
+ @Override
+ public boolean isPlaying() {
+ if (mediaPlayer.isPlaying()){
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public int getBufferPercentage() {
+ return bufferPercentage;
+ }
+
+ @Override
+ public boolean canPause() {
+ return true;
+ }
+
+ @Override
+ public boolean canSeekBackward() {
+ return true;
+ }
+
+ @Override
+ public boolean canSeekForward() {
+ return true;
+ }
+
+ @Override
+ public int getAudioSessionId() {
+ return 0;
+ }
+
+ //SurfaceHolder.callback
+ @Override
+ public void surfaceCreated(SurfaceHolder surfaceHolder) {
+ mediaPlayer.setDisplay(surfaceHolder);
+ mediaPlayer.prepareAsync();
+ }
+
+ @Override
+ public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
+
+ }
+
+ @Override
+ public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
+
+ }
+}
+
diff --git a/app/src/main/java/de/rampro/activitydiary/ui/main/SelectRecyclerViewAdapter.java b/app/src/main/java/de/rampro/activitydiary/ui/main/SelectRecyclerViewAdapter.java
index 60dae75b9..27dfb9a66 100644
--- a/app/src/main/java/de/rampro/activitydiary/ui/main/SelectRecyclerViewAdapter.java
+++ b/app/src/main/java/de/rampro/activitydiary/ui/main/SelectRecyclerViewAdapter.java
@@ -31,6 +31,7 @@
import de.rampro.activitydiary.R;
import de.rampro.activitydiary.helpers.GraphicsHelper;
import de.rampro.activitydiary.model.DiaryActivity;
+import de.rampro.activitydiary.model.conditions.SPUtils;
public class SelectRecyclerViewAdapter extends RecyclerView.Adapter{
private List mActivityList;
@@ -55,11 +56,13 @@ public SelectViewHolders onCreateViewHolder(ViewGroup parent, int viewType) {
public void onBindViewHolder(SelectViewHolders holder, int position) {
DiaryActivity act = mActivityList.get(position);
NumberFormat formatter = new DecimalFormat("#0.00");
+ holder.mTag.setText("Tag:"+ SPUtils.getString(act.getName()+act.getColor()));
holder.mName.setText(act.getName());
// show likelyhood in activity name
// holder.mName.setText(act.getName() + " (" + formatter.format(ActivityHelper.helper.likelihoodFor(act)) + ")");
// TODO #33: holder.mSymbol.setImageResource(act.getPhoto());
holder.mBackground.setBackgroundColor(act.getColor());
+
holder.mName.setTextColor(GraphicsHelper.textColorOnBackground(act.getColor()));
// TODO #31: set the width based on the likelyhood
diff --git a/app/src/main/java/de/rampro/activitydiary/ui/main/SelectViewHolders.java b/app/src/main/java/de/rampro/activitydiary/ui/main/SelectViewHolders.java
index b95aa5272..4c864aca4 100644
--- a/app/src/main/java/de/rampro/activitydiary/ui/main/SelectViewHolders.java
+++ b/app/src/main/java/de/rampro/activitydiary/ui/main/SelectViewHolders.java
@@ -28,7 +28,7 @@
class SelectViewHolders extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
- public TextView mName;
+ public TextView mName,mTag;
public ImageView mSymbol;
public View mBackground;
private SelectRecyclerViewAdapter.SelectListener mListener;
@@ -37,6 +37,7 @@ public SelectViewHolders(SelectRecyclerViewAdapter.SelectListener listener, View
super(itemView);
itemView.setOnClickListener(this);
itemView.setOnLongClickListener(this);
+ mTag= (TextView) itemView.findViewById(R.id.tv_tag);
mName = (TextView) itemView.findViewById(R.id.activity_name);
mSymbol = (ImageView) itemView.findViewById(R.id.activity_image);
mBackground = (View) itemView.findViewById(R.id.activity_background);
diff --git a/app/src/main/res/color/btn_color_selector.xml b/app/src/main/res/color/btn_color_selector.xml
new file mode 100644
index 000000000..722d371c2
--- /dev/null
+++ b/app/src/main/res/color/btn_color_selector.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/btn_selector.xml b/app/src/main/res/drawable/btn_selector.xml
new file mode 100644
index 000000000..6d4b45ac9
--- /dev/null
+++ b/app/src/main/res/drawable/btn_selector.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/close_red_packet.xml b/app/src/main/res/drawable/close_red_packet.xml
new file mode 100644
index 000000000..a0a94e3cc
--- /dev/null
+++ b/app/src/main/res/drawable/close_red_packet.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/close_text_on_video.xml b/app/src/main/res/drawable/close_text_on_video.xml
new file mode 100644
index 000000000..1b0b754f7
--- /dev/null
+++ b/app/src/main/res/drawable/close_text_on_video.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/red_packet_image.png b/app/src/main/res/drawable/red_packet_image.png
new file mode 100644
index 000000000..eac45bbcf
Binary files /dev/null and b/app/src/main/res/drawable/red_packet_image.png differ
diff --git a/app/src/main/res/layout/activity_edit_content.xml b/app/src/main/res/layout/activity_edit_content.xml
index 88e09cff8..0ce189b0f 100644
--- a/app/src/main/res/layout/activity_edit_content.xml
+++ b/app/src/main/res/layout/activity_edit_content.xml
@@ -24,7 +24,13 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="8dp">
-
+
@@ -35,14 +36,12 @@
android:id="@+id/header_area"
android:layout_width="match_parent"
android:layout_height="200dp"
- android:background="@color/colorGreyBackground"
- >
+ android:background="@color/colorGreyBackground">
+ android:layout_height="wrap_content">
+ app:layout_constraintWidth_max="400dp">
+ app:layout_constraintTop_toBottomOf="@+id/inner_const">
+
+ app:tabPaddingTop="0dp">
@@ -92,16 +89,15 @@
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
- app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/app_bar_layout"
- app:layout_constraintBottom_toBottomOf="parent"
- />
+ app:layout_constraintTop_toBottomOf="@+id/app_bar_layout" />
-
-
-
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+
-
+ android:layout_height="0dp"
+ android:layout_weight="1">
+
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/red_packet_video.xml b/app/src/main/res/layout/red_packet_video.xml
new file mode 100644
index 000000000..f91741f39
--- /dev/null
+++ b/app/src/main/res/layout/red_packet_video.xml
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/select_recycler_item.xml b/app/src/main/res/layout/select_recycler_item.xml
index df573dd74..fb9be4b3c 100644
--- a/app/src/main/res/layout/select_recycler_item.xml
+++ b/app/src/main/res/layout/select_recycler_item.xml
@@ -27,7 +27,18 @@
card_view:cardUseCompatPadding="true"
card_view:cardCornerRadius="8dp"
android:layout_marginBottom="16dp">
-
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 39608e922..68facca1f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -74,6 +74,8 @@
Activity colorActivity title
+ Activity tag
+
Choose current activity…@string/dialog_title_note
diff --git a/build.gradle b/build.gradle
index d91b869d2..9185facce 100644
--- a/build.gradle
+++ b/build.gradle
@@ -23,6 +23,7 @@ buildscript {
repositories {
google()
mavenCentral()
+ maven { url 'https://jitpack.io' }
if (project.file('ActivityDiarySigning.properties').exists()) {
mavenCentral()
}
@@ -46,6 +47,7 @@ allprojects {
repositories {
google()
mavenCentral()
+ maven { url 'https://jitpack.io' }
jcenter()
maven { url "https://jitpack.io" }
}