new dialog style, replaced enums

This commit is contained in:
nuclearfog 2020-03-16 22:22:41 +01:00
parent 6adaca9bff
commit 4e8f00de4e
No known key found for this signature in database
GPG Key ID: ED35E22099354A64
24 changed files with 199 additions and 191 deletions

2
.gitignore vendored
View File

@ -7,3 +7,5 @@
/build /build
/captures /captures
.externalNativeBuild .externalNativeBuild
/app/release/
/.idea/caches/

View File

@ -1,8 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings"> <component name="GradleSettings">
<option name="linkedExternalProjectsSettings"> <option name="linkedExternalProjectsSettings">
<GradleProjectSettings> <GradleProjectSettings>
<option name="delegatedBuild" value="false" />
<option name="testRunner" value="PLATFORM" />
<option name="distributionType" value="LOCAL" /> <option name="distributionType" value="LOCAL" />
<option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome" value="/opt/Gradle/gradle-6.0.1" /> <option name="gradleHome" value="/opt/Gradle/gradle-6.0.1" />
@ -13,7 +16,6 @@
</set> </set>
</option> </option>
<option name="resolveModulePerSourceSet" value="false" /> <option name="resolveModulePerSourceSet" value="false" />
<option name="testRunner" value="PLATFORM" />
</GradleProjectSettings> </GradleProjectSettings>
</option> </option>
</component> </component>

View File

@ -2,8 +2,8 @@
<project version="4"> <project version="4">
<component name="ProjectModuleManager"> <component name="ProjectModuleManager">
<modules> <modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Shitter.iml" filepath="$PROJECT_DIR$/.idea/Shitter.iml" /> <module fileurl="file://$PROJECT_DIR$/.idea/Shitter.iml" filepath="$PROJECT_DIR$/.idea/Shitter.iml" group="Shitter" />
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" group="Shitter/app" />
</modules> </modules>
</component> </component>
</project> </project>

View File

@ -1,7 +1,7 @@
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
android { android {
buildToolsVersion '29.0.2' buildToolsVersion '29.0.3'
compileSdkVersion 29 compileSdkVersion 29
defaultConfig { defaultConfig {

View File

@ -193,7 +193,7 @@ public class AppSettings extends AppCompatActivity implements OnClickListener, O
public void onClick(View v) { public void onClick(View v) {
switch (v.getId()) { switch (v.getId()) {
case R.id.delete_db: case R.id.delete_db:
new Builder(this) new Builder(this, R.style.InfoDialog)
.setMessage(R.string.delete_database_popup) .setMessage(R.string.delete_database_popup)
.setNegativeButton(R.string.no_confirm, null) .setNegativeButton(R.string.no_confirm, null)
.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() { .setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {
@ -207,7 +207,7 @@ public class AppSettings extends AppCompatActivity implements OnClickListener, O
break; break;
case R.id.logout: case R.id.logout:
new Builder(this) new Builder(this, R.style.InfoDialog)
.setMessage(R.string.confirm_log_lout) .setMessage(R.string.confirm_log_lout)
.setNegativeButton(R.string.no_confirm, null) .setNegativeButton(R.string.no_confirm, null)
.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() { .setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {

View File

@ -47,6 +47,13 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
public static final String KEY_MEDIA_LINK = "media_link"; public static final String KEY_MEDIA_LINK = "media_link";
public static final String KEY_MEDIA_TYPE = "media_type"; public static final String KEY_MEDIA_TYPE = "media_type";
public static final int MEDIAVIEWER_IMAGE = 0;
public static final int MEDIAVIEWER_VIDEO = 1;
public static final int MEDIAVIEWER_ANGIF = 2;
public static final int MEDIAVIEWER_IMG_STORAGE = 3;
public static final int MEDIAVIEWER_VIDEO_STORAGE = 4;
public static final int MEDIAVIEWER_ANGIF_STORAGE = 5;
private static final SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss", Locale.GERMANY); private static final SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss", Locale.GERMANY);
private static final String[] REQ_WRITE_SD = {WRITE_EXTERNAL_STORAGE}; private static final String[] REQ_WRITE_SD = {WRITE_EXTERNAL_STORAGE};
private static final int REQCODE_SD = 6; private static final int REQCODE_SD = 6;
@ -58,20 +65,11 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
private ImageAdapter adapter; private ImageAdapter adapter;
private VideoView videoView; private VideoView videoView;
private ZoomView zoomImage; private ZoomView zoomImage;
private MediaType type;
private String[] link; private String[] link;
private int type;
private int width; private int width;
private int lastPos = 0; private int lastPos = 0;
public enum MediaType {
IMAGE,
IMAGE_STORAGE,
VIDEO,
VIDEO_STORAGE,
ANGIF,
ANGIF_STORAGE
}
@Override @Override
protected void onCreate(Bundle b) { protected void onCreate(Bundle b) {
@ -91,14 +89,13 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
Bundle param = getIntent().getExtras(); Bundle param = getIntent().getExtras();
if (param != null && param.containsKey(KEY_MEDIA_LINK) && param.containsKey(KEY_MEDIA_TYPE)) { if (param != null && param.containsKey(KEY_MEDIA_LINK) && param.containsKey(KEY_MEDIA_TYPE)) {
link = param.getStringArray(KEY_MEDIA_LINK); link = param.getStringArray(KEY_MEDIA_LINK);
type = (MediaType) param.getSerializable(KEY_MEDIA_TYPE); type = param.getInt(KEY_MEDIA_TYPE);
} }
if (type != null)
switch (type) { switch (type) {
case IMAGE: case MEDIAVIEWER_IMAGE:
case IMAGE_STORAGE: case MEDIAVIEWER_IMG_STORAGE:
case ANGIF_STORAGE: case MEDIAVIEWER_ANGIF_STORAGE:
imageWindow.setVisibility(VISIBLE); imageWindow.setVisibility(VISIBLE);
imageList.setLayoutManager(new LinearLayoutManager(this, HORIZONTAL, false)); imageList.setLayoutManager(new LinearLayoutManager(this, HORIZONTAL, false));
imageList.setAdapter(adapter); imageList.setAdapter(adapter);
@ -108,15 +105,15 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
width = size.x; width = size.x;
break; break;
case ANGIF: case MEDIAVIEWER_ANGIF:
videoWindow.setVisibility(VISIBLE); videoWindow.setVisibility(VISIBLE);
Uri video = Uri.parse(link[0]); Uri video = Uri.parse(link[0]);
videoView.setOnPreparedListener(this); videoView.setOnPreparedListener(this);
videoView.setVideoURI(video); videoView.setVideoURI(video);
break; break;
case VIDEO: case MEDIAVIEWER_VIDEO:
case VIDEO_STORAGE: case MEDIAVIEWER_VIDEO_STORAGE:
videoWindow.setVisibility(VISIBLE); videoWindow.setVisibility(VISIBLE);
video = Uri.parse(link[0]); video = Uri.parse(link[0]);
videoView.setMediaController(videoController); videoView.setMediaController(videoController);
@ -124,7 +121,6 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
videoView.setVideoURI(video); videoView.setVideoURI(video);
break; break;
} }
else finish();
} }
@ -132,7 +128,7 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
protected void onStart() { protected void onStart() {
super.onStart(); super.onStart();
switch (type) { switch (type) {
case IMAGE: case MEDIAVIEWER_IMAGE:
if (imageAsync == null) { if (imageAsync == null) {
imageAsync = new ImageLoader(this, ONLINE); imageAsync = new ImageLoader(this, ONLINE);
imageAsync.execute(link); imageAsync.execute(link);
@ -140,17 +136,17 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
break; break;
case ANGIF_STORAGE: case MEDIAVIEWER_ANGIF_STORAGE:
case IMAGE_STORAGE: case MEDIAVIEWER_IMG_STORAGE:
if (imageAsync == null) { if (imageAsync == null) {
imageAsync = new ImageLoader(this, STORAGE); imageAsync = new ImageLoader(this, STORAGE);
imageAsync.execute(link); imageAsync.execute(link);
} }
break; break;
case VIDEO: case MEDIAVIEWER_VIDEO:
case ANGIF: case MEDIAVIEWER_ANGIF:
case VIDEO_STORAGE: case MEDIAVIEWER_VIDEO_STORAGE:
videoView.start(); videoView.start();
break; break;
} }
@ -160,7 +156,7 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
@Override @Override
protected void onStop() { protected void onStop() {
super.onStop(); super.onStop();
if (type == MediaType.VIDEO || type == MediaType.VIDEO_STORAGE) { if (type == MEDIAVIEWER_VIDEO || type == MEDIAVIEWER_VIDEO_STORAGE) {
lastPos = videoView.getCurrentPosition(); lastPos = videoView.getCurrentPosition();
videoView.pause(); videoView.pause();
} }
@ -183,7 +179,7 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
@Override @Override
public void onImageTouch(Bitmap image) { public void onImageTouch(Bitmap image) {
if (type == MediaType.IMAGE) { if (type == MEDIAVIEWER_IMAGE) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int check = checkSelfPermission(WRITE_EXTERNAL_STORAGE); int check = checkSelfPermission(WRITE_EXTERNAL_STORAGE);
if (check == PERMISSION_GRANTED) { if (check == PERMISSION_GRANTED) {
@ -201,13 +197,13 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
@Override @Override
public void onPrepared(MediaPlayer mp) { public void onPrepared(MediaPlayer mp) {
switch (type) { switch (type) {
case ANGIF: case MEDIAVIEWER_ANGIF:
mp.setLooping(true); mp.setLooping(true);
mp.start(); mp.start();
break; break;
case VIDEO: case MEDIAVIEWER_VIDEO:
case VIDEO_STORAGE: case MEDIAVIEWER_VIDEO_STORAGE:
videoController.show(0); videoController.show(0);
mp.seekTo(lastPos); mp.seekTo(lastPos);
mp.start(); mp.start();

View File

@ -13,7 +13,7 @@ import android.widget.EditText;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog.Builder;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import org.nuclearfog.twidda.R; import org.nuclearfog.twidda.R;
@ -30,7 +30,7 @@ import static android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
import static android.widget.Toast.LENGTH_SHORT; import static android.widget.Toast.LENGTH_SHORT;
import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_LINK; import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_LINK;
import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_TYPE; import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_TYPE;
import static org.nuclearfog.twidda.activity.MediaViewer.MediaType.IMAGE_STORAGE; import static org.nuclearfog.twidda.activity.MediaViewer.MEDIAVIEWER_IMG_STORAGE;
public class MessagePopup extends AppCompatActivity implements OnClickListener { public class MessagePopup extends AppCompatActivity implements OnClickListener {
@ -76,7 +76,7 @@ public class MessagePopup extends AppCompatActivity implements OnClickListener {
if (text.getText().toString().isEmpty() && mediaPath.isEmpty()) { if (text.getText().toString().isEmpty() && mediaPath.isEmpty()) {
super.onBackPressed(); super.onBackPressed();
} else { } else {
AlertDialog.Builder closeDialog = new AlertDialog.Builder(this); Builder closeDialog = new Builder(this, R.style.InfoDialog);
closeDialog.setMessage(R.string.cancel_message); closeDialog.setMessage(R.string.cancel_message);
closeDialog.setNegativeButton(R.string.no_confirm, null); closeDialog.setNegativeButton(R.string.no_confirm, null);
closeDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() { closeDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {
@ -139,7 +139,7 @@ public class MessagePopup extends AppCompatActivity implements OnClickListener {
else { else {
Intent image = new Intent(this, MediaViewer.class); Intent image = new Intent(this, MediaViewer.class);
image.putExtra(KEY_MEDIA_LINK, new String[]{mediaPath}); image.putExtra(KEY_MEDIA_LINK, new String[]{mediaPath});
image.putExtra(KEY_MEDIA_TYPE, IMAGE_STORAGE); image.putExtra(KEY_MEDIA_TYPE, MEDIAVIEWER_IMG_STORAGE);
startActivity(image); startActivity(image);
} }
} }

View File

@ -18,7 +18,7 @@ import android.widget.ImageView;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog.Builder;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
@ -39,8 +39,8 @@ import static android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
import static android.widget.Toast.LENGTH_SHORT; import static android.widget.Toast.LENGTH_SHORT;
import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_LINK; import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_LINK;
import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_TYPE; import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_TYPE;
import static org.nuclearfog.twidda.activity.MediaViewer.MediaType.IMAGE; import static org.nuclearfog.twidda.activity.MediaViewer.MEDIAVIEWER_IMAGE;
import static org.nuclearfog.twidda.activity.MediaViewer.MediaType.IMAGE_STORAGE; import static org.nuclearfog.twidda.activity.MediaViewer.MEDIAVIEWER_IMG_STORAGE;
public class ProfileEditor extends AppCompatActivity implements OnClickListener { public class ProfileEditor extends AppCompatActivity implements OnClickListener {
@ -100,7 +100,7 @@ public class ProfileEditor extends AppCompatActivity implements OnClickListener
@Override @Override
public void onBackPressed() { public void onBackPressed() {
AlertDialog.Builder closeDialog = new AlertDialog.Builder(this); Builder closeDialog = new Builder(this, R.style.InfoDialog);
closeDialog.setMessage(R.string.exit_confirm); closeDialog.setMessage(R.string.exit_confirm);
closeDialog.setNegativeButton(R.string.no_confirm, null); closeDialog.setNegativeButton(R.string.no_confirm, null);
closeDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() { closeDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {
@ -180,11 +180,11 @@ public class ProfileEditor extends AppCompatActivity implements OnClickListener
if (!txtImg.getText().toString().isEmpty()) { if (!txtImg.getText().toString().isEmpty()) {
String[] mediaLink = new String[]{txtImg.getText().toString()}; String[] mediaLink = new String[]{txtImg.getText().toString()};
image.putExtra(KEY_MEDIA_LINK, mediaLink); image.putExtra(KEY_MEDIA_LINK, mediaLink);
image.putExtra(KEY_MEDIA_TYPE, IMAGE_STORAGE); image.putExtra(KEY_MEDIA_TYPE, MEDIAVIEWER_IMG_STORAGE);
} else { } else {
String[] mediaLink = new String[]{user.getImageLink()}; String[] mediaLink = new String[]{user.getImageLink()};
image.putExtra(KEY_MEDIA_LINK, mediaLink); image.putExtra(KEY_MEDIA_LINK, mediaLink);
image.putExtra(KEY_MEDIA_TYPE, IMAGE); image.putExtra(KEY_MEDIA_TYPE, MEDIAVIEWER_IMAGE);
} }
startActivity(image); startActivity(image);
} }

View File

@ -35,7 +35,6 @@ import com.squareup.picasso.Picasso;
import org.nuclearfog.tag.Tagger; import org.nuclearfog.tag.Tagger;
import org.nuclearfog.tag.Tagger.OnTagClickListener; import org.nuclearfog.tag.Tagger.OnTagClickListener;
import org.nuclearfog.twidda.R; import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.activity.UserDetail.UserType;
import org.nuclearfog.twidda.adapter.FragmentAdapter; import org.nuclearfog.twidda.adapter.FragmentAdapter;
import org.nuclearfog.twidda.adapter.FragmentAdapter.AdapterType; import org.nuclearfog.twidda.adapter.FragmentAdapter.AdapterType;
import org.nuclearfog.twidda.backend.StatusLoader; import org.nuclearfog.twidda.backend.StatusLoader;
@ -60,14 +59,16 @@ import static android.view.View.VISIBLE;
import static android.widget.Toast.LENGTH_SHORT; import static android.widget.Toast.LENGTH_SHORT;
import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_LINK; import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_LINK;
import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_TYPE; import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_TYPE;
import static org.nuclearfog.twidda.activity.MediaViewer.MediaType.ANGIF; import static org.nuclearfog.twidda.activity.MediaViewer.MEDIAVIEWER_ANGIF;
import static org.nuclearfog.twidda.activity.MediaViewer.MediaType.IMAGE; import static org.nuclearfog.twidda.activity.MediaViewer.MEDIAVIEWER_IMAGE;
import static org.nuclearfog.twidda.activity.MediaViewer.MediaType.VIDEO; import static org.nuclearfog.twidda.activity.MediaViewer.MEDIAVIEWER_VIDEO;
import static org.nuclearfog.twidda.activity.SearchPage.KEY_SEARCH_QUERY; import static org.nuclearfog.twidda.activity.SearchPage.KEY_SEARCH_QUERY;
import static org.nuclearfog.twidda.activity.TweetPopup.KEY_TWEETPOPUP_PREFIX; import static org.nuclearfog.twidda.activity.TweetPopup.KEY_TWEETPOPUP_PREFIX;
import static org.nuclearfog.twidda.activity.TweetPopup.KEY_TWEETPOPUP_REPLYID; import static org.nuclearfog.twidda.activity.TweetPopup.KEY_TWEETPOPUP_REPLYID;
import static org.nuclearfog.twidda.activity.UserDetail.KEY_USERDETAIL_ID; import static org.nuclearfog.twidda.activity.UserDetail.KEY_USERDETAIL_ID;
import static org.nuclearfog.twidda.activity.UserDetail.KEY_USERDETAIL_MODE; import static org.nuclearfog.twidda.activity.UserDetail.KEY_USERDETAIL_MODE;
import static org.nuclearfog.twidda.activity.UserDetail.USERLIST_RETWEETS;
import static org.nuclearfog.twidda.activity.UserDetail.USERLSIT_FAVORITS;
public class TweetDetail extends AppCompatActivity implements OnClickListener, OnTouchListener, public class TweetDetail extends AppCompatActivity implements OnClickListener, OnTouchListener,
@ -131,7 +132,6 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener, O
getSupportActionBar().setDisplayShowTitleEnabled(false); getSupportActionBar().setDisplayShowTitleEnabled(false);
FragmentAdapter adapter = new FragmentAdapter(getSupportFragmentManager(), AdapterType.TWEET_PAGE, tweetID, username); FragmentAdapter adapter = new FragmentAdapter(getSupportFragmentManager(), AdapterType.TWEET_PAGE, tweetID, username);
FontTool.setViewFont(root, settings.getFontFace()); FontTool.setViewFont(root, settings.getFontFace());
tweetLoc.setMovementMethod(LinkMovementMethod.getInstance()); tweetLoc.setMovementMethod(LinkMovementMethod.getInstance());
tweetText.setMovementMethod(LinkMovementMethod.getInstance()); tweetText.setMovementMethod(LinkMovementMethod.getInstance());
@ -149,7 +149,6 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener, O
rtwButton.setOnLongClickListener(this); rtwButton.setOnLongClickListener(this);
favButton.setOnLongClickListener(this); favButton.setOnLongClickListener(this);
profile_img.setOnClickListener(this); profile_img.setOnClickListener(this);
} }
@ -191,7 +190,7 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener, O
if (statusAsync != null && statusAsync.getStatus() != RUNNING) { if (statusAsync != null && statusAsync.getStatus() != RUNNING) {
switch (item.getItemId()) { switch (item.getItemId()) {
case R.id.delete_tweet: case R.id.delete_tweet:
Builder deleteDialog = new Builder(this); Builder deleteDialog = new Builder(this, R.style.InfoDialog);
deleteDialog.setMessage(R.string.delete_tweet); deleteDialog.setMessage(R.string.delete_tweet);
deleteDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() { deleteDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {
@Override @Override
@ -244,14 +243,14 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener, O
case R.id.tweet_retweet: case R.id.tweet_retweet:
Intent userList = new Intent(this, UserDetail.class); Intent userList = new Intent(this, UserDetail.class);
userList.putExtra(KEY_USERDETAIL_ID, tweetID); userList.putExtra(KEY_USERDETAIL_ID, tweetID);
userList.putExtra(KEY_USERDETAIL_MODE, UserType.RETWEETS); userList.putExtra(KEY_USERDETAIL_MODE, USERLIST_RETWEETS);
startActivity(userList); startActivity(userList);
break; break;
case R.id.tweet_favorit: case R.id.tweet_favorit:
userList = new Intent(this, UserDetail.class); userList = new Intent(this, UserDetail.class);
userList.putExtra(KEY_USERDETAIL_ID, tweetID); userList.putExtra(KEY_USERDETAIL_ID, tweetID);
userList.putExtra(KEY_USERDETAIL_MODE, UserType.FAVORITS); userList.putExtra(KEY_USERDETAIL_MODE, USERLSIT_FAVORITS);
startActivity(userList); startActivity(userList);
break; break;
@ -383,7 +382,7 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener, O
public void onClick(View v) { public void onClick(View v) {
Intent media = new Intent(getApplicationContext(), MediaViewer.class); Intent media = new Intent(getApplicationContext(), MediaViewer.class);
media.putExtra(KEY_MEDIA_LINK, tweet.getMediaLinks()); media.putExtra(KEY_MEDIA_LINK, tweet.getMediaLinks());
media.putExtra(KEY_MEDIA_TYPE, IMAGE); media.putExtra(KEY_MEDIA_TYPE, MEDIAVIEWER_IMAGE);
startActivity(media); startActivity(media);
} }
}); });
@ -397,7 +396,7 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener, O
public void onClick(View v) { public void onClick(View v) {
Intent media = new Intent(getApplicationContext(), MediaViewer.class); Intent media = new Intent(getApplicationContext(), MediaViewer.class);
media.putExtra(KEY_MEDIA_LINK, tweet.getMediaLinks()); media.putExtra(KEY_MEDIA_LINK, tweet.getMediaLinks());
media.putExtra(KEY_MEDIA_TYPE, ANGIF); media.putExtra(KEY_MEDIA_TYPE, MEDIAVIEWER_ANGIF);
startActivity(media); startActivity(media);
} }
}); });
@ -411,7 +410,7 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener, O
public void onClick(View v) { public void onClick(View v) {
Intent media = new Intent(getApplicationContext(), MediaViewer.class); Intent media = new Intent(getApplicationContext(), MediaViewer.class);
media.putExtra(KEY_MEDIA_LINK, tweet.getMediaLinks()); media.putExtra(KEY_MEDIA_LINK, tweet.getMediaLinks());
media.putExtra(KEY_MEDIA_TYPE, VIDEO); media.putExtra(KEY_MEDIA_TYPE, MEDIAVIEWER_VIDEO);
startActivity(media); startActivity(media);
} }
}); });

View File

@ -44,9 +44,9 @@ import static android.widget.Toast.LENGTH_LONG;
import static android.widget.Toast.LENGTH_SHORT; import static android.widget.Toast.LENGTH_SHORT;
import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_LINK; import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_LINK;
import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_TYPE; import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_TYPE;
import static org.nuclearfog.twidda.activity.MediaViewer.MediaType.ANGIF_STORAGE; import static org.nuclearfog.twidda.activity.MediaViewer.MEDIAVIEWER_ANGIF_STORAGE;
import static org.nuclearfog.twidda.activity.MediaViewer.MediaType.IMAGE_STORAGE; import static org.nuclearfog.twidda.activity.MediaViewer.MEDIAVIEWER_IMG_STORAGE;
import static org.nuclearfog.twidda.activity.MediaViewer.MediaType.VIDEO_STORAGE; import static org.nuclearfog.twidda.activity.MediaViewer.MEDIAVIEWER_VIDEO_STORAGE;
public class TweetPopup extends AppCompatActivity implements OnClickListener, LocationListener { public class TweetPopup extends AppCompatActivity implements OnClickListener, LocationListener {
@ -54,6 +54,11 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener, Lo
public static final String KEY_TWEETPOPUP_REPLYID = "tweet_replyID"; public static final String KEY_TWEETPOPUP_REPLYID = "tweet_replyID";
public static final String KEY_TWEETPOPUP_PREFIX = "tweet_prefix"; public static final String KEY_TWEETPOPUP_PREFIX = "tweet_prefix";
private static final int NONE = 0;
private static final int IMAGE = 1;
private static final int VIDEO = 2;
private static final int GIF = 3;
private static final String[] PERM_STORAGE = {READ_EXTERNAL_STORAGE}; private static final String[] PERM_STORAGE = {READ_EXTERNAL_STORAGE};
private static final String[] PERM_LOCATION = {ACCESS_FINE_LOCATION}; private static final String[] PERM_LOCATION = {ACCESS_FINE_LOCATION};
private static final String[] GET_MEDIA = {MediaStore.Images.Media.DATA}; private static final String[] GET_MEDIA = {MediaStore.Images.Media.DATA};
@ -73,14 +78,7 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener, Lo
private EditText tweet; private EditText tweet;
private String addition = ""; private String addition = "";
private long inReplyId = 0; private long inReplyId = 0;
private Mode mode = Mode.NONE; private int mode = NONE;
private enum Mode {
IMAGE,
VIDEO,
GIF,
NONE
}
@Override @Override
protected void onCreate(Bundle b) { protected void onCreate(Bundle b) {
@ -146,9 +144,9 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener, Lo
switch (type) { switch (type) {
case IMAGE: case IMAGE:
if (mode == Mode.NONE) if (mode == NONE)
mode = Mode.IMAGE; mode = IMAGE;
if (mediaPath.size() < MAX_IMAGES && mode == Mode.IMAGE) { if (mediaPath.size() < MAX_IMAGES && mode == IMAGE) {
mediaPath.add(path); mediaPath.add(path);
previewBtn.setVisibility(VISIBLE); previewBtn.setVisibility(VISIBLE);
String count = Integer.toString(mediaPath.size()); String count = Integer.toString(mediaPath.size());
@ -159,9 +157,9 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener, Lo
break; break;
case ANGIF: case ANGIF:
if (mode == Mode.NONE) if (mode == NONE)
mode = Mode.GIF; mode = GIF;
if (mode == Mode.GIF) { if (mode == GIF) {
mediaPath.add(path); mediaPath.add(path);
previewBtn.setVisibility(VISIBLE); previewBtn.setVisibility(VISIBLE);
mediaBtn.setVisibility(INVISIBLE); mediaBtn.setVisibility(INVISIBLE);
@ -169,9 +167,9 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener, Lo
break; break;
case VIDEO: case VIDEO:
if (mode == Mode.NONE) if (mode == NONE)
mode = Mode.VIDEO; mode = VIDEO;
if (mode == Mode.VIDEO) { if (mode == VIDEO) {
mediaPath.add(path); mediaPath.add(path);
previewBtn.setVisibility(VISIBLE); previewBtn.setVisibility(VISIBLE);
mediaBtn.setVisibility(INVISIBLE); mediaBtn.setVisibility(INVISIBLE);
@ -239,17 +237,17 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener, Lo
switch (mode) { switch (mode) {
case IMAGE: case IMAGE:
image.putExtra(KEY_MEDIA_TYPE, IMAGE_STORAGE); image.putExtra(KEY_MEDIA_TYPE, MEDIAVIEWER_IMG_STORAGE);
startActivity(image); startActivity(image);
break; break;
case VIDEO: case VIDEO:
image.putExtra(KEY_MEDIA_TYPE, VIDEO_STORAGE); image.putExtra(KEY_MEDIA_TYPE, MEDIAVIEWER_VIDEO_STORAGE);
startActivity(image); startActivity(image);
break; break;
case GIF: case GIF:
image.putExtra(KEY_MEDIA_TYPE, ANGIF_STORAGE); image.putExtra(KEY_MEDIA_TYPE, MEDIAVIEWER_ANGIF_STORAGE);
startActivity(image); startActivity(image);
break; break;
} }
@ -295,7 +293,7 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener, Lo
*/ */
private void showClosingMsg() { private void showClosingMsg() {
if (!addition.equals(tweet.getText().toString()) || !mediaPath.isEmpty()) { if (!addition.equals(tweet.getText().toString()) || !mediaPath.isEmpty()) {
Builder closeDialog = new Builder(this); Builder closeDialog = new Builder(this, R.style.InfoDialog);
closeDialog.setMessage(R.string.confirm_cancel_tweet); closeDialog.setMessage(R.string.confirm_cancel_tweet);
closeDialog.setNegativeButton(R.string.no_confirm, null); closeDialog.setNegativeButton(R.string.no_confirm, null);
closeDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() { closeDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {
@ -323,14 +321,14 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener, Lo
} }
} }
if (accessGranted) { if (accessGranted) {
if (mode == Mode.NONE) { if (mode == NONE) {
Intent mediaIntent = new Intent(ACTION_PICK); Intent mediaIntent = new Intent(ACTION_PICK);
mediaIntent.setDataAndType(EXTERNAL_CONTENT_URI, TYPE_IMAGE + TYPE_VIDEO); mediaIntent.setDataAndType(EXTERNAL_CONTENT_URI, TYPE_IMAGE + TYPE_VIDEO);
if (mediaIntent.resolveActivity(getPackageManager()) != null) if (mediaIntent.resolveActivity(getPackageManager()) != null)
startActivityForResult(mediaIntent, PICK_MEDIA); startActivityForResult(mediaIntent, PICK_MEDIA);
else else
Toast.makeText(getApplicationContext(), R.string.error_no_media_app, LENGTH_SHORT).show(); Toast.makeText(getApplicationContext(), R.string.error_no_media_app, LENGTH_SHORT).show();
} else if (mode == Mode.IMAGE) { } else if (mode == IMAGE) {
Intent imageIntent = new Intent(ACTION_PICK); Intent imageIntent = new Intent(ACTION_PICK);
imageIntent.setDataAndType(EXTERNAL_CONTENT_URI, TYPE_IMAGE); imageIntent.setDataAndType(EXTERNAL_CONTENT_URI, TYPE_IMAGE);
if (imageIntent.resolveActivity(getPackageManager()) != null) if (imageIntent.resolveActivity(getPackageManager()) != null)

View File

@ -18,16 +18,14 @@ public class UserDetail extends AppCompatActivity {
public static final String KEY_USERDETAIL_MODE = "userlist_mode"; public static final String KEY_USERDETAIL_MODE = "userlist_mode";
public static final String KEY_USERDETAIL_ID = "userlist_owner_id"; public static final String KEY_USERDETAIL_ID = "userlist_owner_id";
public enum UserType { public static final int USERLIST_FRIENDS = 0;
FRIENDS, public static final int USERLIST_FOLLOWER = 1;
FOLLOWERS, public static final int USERLIST_RETWEETS = 2;
RETWEETS, public static final int USERLSIT_FAVORITS = 3;
FAVORITS, public static final int USERLIST_SUBSCRIBER = 4;
SUBSCRIBER
}
private UserType mode;
private long id; private long id;
private int mode;
@Override @Override
protected void onCreate(Bundle b) { protected void onCreate(Bundle b) {
@ -36,7 +34,7 @@ public class UserDetail extends AppCompatActivity {
Bundle param = getIntent().getExtras(); Bundle param = getIntent().getExtras();
if (param != null && param.containsKey(KEY_USERDETAIL_MODE) && param.containsKey(KEY_USERDETAIL_ID)) { if (param != null && param.containsKey(KEY_USERDETAIL_MODE) && param.containsKey(KEY_USERDETAIL_ID)) {
mode = (UserType) param.getSerializable(KEY_USERDETAIL_MODE); mode = param.getInt(KEY_USERDETAIL_MODE);
id = param.getLong(KEY_USERDETAIL_ID); id = param.getLong(KEY_USERDETAIL_ID);
} }
@ -50,31 +48,31 @@ public class UserDetail extends AppCompatActivity {
setSupportActionBar(toolbar); setSupportActionBar(toolbar);
switch (mode) { switch (mode) {
case FRIENDS: case USERLIST_FRIENDS:
if (getSupportActionBar() != null) if (getSupportActionBar() != null)
getSupportActionBar().setTitle(R.string.following); getSupportActionBar().setTitle(R.string.following);
adapter = new FragmentAdapter(getSupportFragmentManager(), AdapterType.FRIENDS_PAGE, id, ""); adapter = new FragmentAdapter(getSupportFragmentManager(), AdapterType.FRIENDS_PAGE, id, "");
pager.setAdapter(adapter); pager.setAdapter(adapter);
break; break;
case FOLLOWERS: case USERLIST_FOLLOWER:
if (getSupportActionBar() != null) if (getSupportActionBar() != null)
getSupportActionBar().setTitle(R.string.follower); getSupportActionBar().setTitle(R.string.follower);
adapter = new FragmentAdapter(getSupportFragmentManager(), AdapterType.FOLLOWER_PAGE, id, ""); adapter = new FragmentAdapter(getSupportFragmentManager(), AdapterType.FOLLOWER_PAGE, id, "");
pager.setAdapter(adapter); pager.setAdapter(adapter);
break; break;
case RETWEETS: case USERLIST_RETWEETS:
if (getSupportActionBar() != null) if (getSupportActionBar() != null)
getSupportActionBar().setTitle(R.string.retweet); getSupportActionBar().setTitle(R.string.retweet);
adapter = new FragmentAdapter(getSupportFragmentManager(), AdapterType.RETWEETER_PAGE, id, ""); adapter = new FragmentAdapter(getSupportFragmentManager(), AdapterType.RETWEETER_PAGE, id, "");
pager.setAdapter(adapter); pager.setAdapter(adapter);
break; break;
case FAVORITS: case USERLSIT_FAVORITS:
if (getSupportActionBar() != null) if (getSupportActionBar() != null)
getSupportActionBar().setTitle(R.string.favorite); getSupportActionBar().setTitle(R.string.favorite);
adapter = new FragmentAdapter(getSupportFragmentManager(), AdapterType.FAVOR_PAGE, id, ""); adapter = new FragmentAdapter(getSupportFragmentManager(), AdapterType.FAVOR_PAGE, id, "");
pager.setAdapter(adapter); pager.setAdapter(adapter);
break; break;
case SUBSCRIBER: case USERLIST_SUBSCRIBER:
if (getSupportActionBar() != null) if (getSupportActionBar() != null)
getSupportActionBar().setTitle(R.string.user_list_subscr); getSupportActionBar().setTitle(R.string.user_list_subscr);
adapter = new FragmentAdapter(getSupportFragmentManager(), AdapterType.SUBSCRIBER_PAGE, id, ""); adapter = new FragmentAdapter(getSupportFragmentManager(), AdapterType.SUBSCRIBER_PAGE, id, "");

View File

@ -19,7 +19,6 @@ public class UserList extends AppCompatActivity {
public static final String KEY_USERLIST_ID = "userlist-owner"; public static final String KEY_USERLIST_ID = "userlist-owner";
private long userId; private long userId;
@Override @Override
protected void onCreate(Bundle b) { protected void onCreate(Bundle b) {
super.onCreate(b); super.onCreate(b);

View File

@ -55,14 +55,14 @@ import static android.view.View.VISIBLE;
import static android.widget.Toast.LENGTH_SHORT; import static android.widget.Toast.LENGTH_SHORT;
import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_LINK; import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_LINK;
import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_TYPE; import static org.nuclearfog.twidda.activity.MediaViewer.KEY_MEDIA_TYPE;
import static org.nuclearfog.twidda.activity.MediaViewer.MediaType.IMAGE; import static org.nuclearfog.twidda.activity.MediaViewer.MEDIAVIEWER_IMAGE;
import static org.nuclearfog.twidda.activity.MessagePopup.KEY_DM_PREFIX; import static org.nuclearfog.twidda.activity.MessagePopup.KEY_DM_PREFIX;
import static org.nuclearfog.twidda.activity.SearchPage.KEY_SEARCH_QUERY; import static org.nuclearfog.twidda.activity.SearchPage.KEY_SEARCH_QUERY;
import static org.nuclearfog.twidda.activity.TweetPopup.KEY_TWEETPOPUP_PREFIX; import static org.nuclearfog.twidda.activity.TweetPopup.KEY_TWEETPOPUP_PREFIX;
import static org.nuclearfog.twidda.activity.UserDetail.KEY_USERDETAIL_ID; import static org.nuclearfog.twidda.activity.UserDetail.KEY_USERDETAIL_ID;
import static org.nuclearfog.twidda.activity.UserDetail.KEY_USERDETAIL_MODE; import static org.nuclearfog.twidda.activity.UserDetail.KEY_USERDETAIL_MODE;
import static org.nuclearfog.twidda.activity.UserDetail.UserType.FOLLOWERS; import static org.nuclearfog.twidda.activity.UserDetail.USERLIST_FOLLOWER;
import static org.nuclearfog.twidda.activity.UserDetail.UserType.FRIENDS; import static org.nuclearfog.twidda.activity.UserDetail.USERLIST_FRIENDS;
import static org.nuclearfog.twidda.activity.UserList.KEY_USERLIST_ID; import static org.nuclearfog.twidda.activity.UserList.KEY_USERLIST_ID;
import static org.nuclearfog.twidda.backend.ProfileLoader.Action.LDR_PROFILE; import static org.nuclearfog.twidda.backend.ProfileLoader.Action.LDR_PROFILE;
@ -391,7 +391,7 @@ public class UserProfile extends AppCompatActivity implements OnClickListener,
if (!user.isLocked() || properties.isFriend()) { if (!user.isLocked() || properties.isFriend()) {
Intent following = new Intent(this, UserDetail.class); Intent following = new Intent(this, UserDetail.class);
following.putExtra(KEY_USERDETAIL_ID, userId); following.putExtra(KEY_USERDETAIL_ID, userId);
following.putExtra(KEY_USERDETAIL_MODE, FRIENDS); following.putExtra(KEY_USERDETAIL_MODE, USERLIST_FRIENDS);
startActivity(following); startActivity(following);
} }
} }
@ -402,7 +402,7 @@ public class UserProfile extends AppCompatActivity implements OnClickListener,
if (!user.isLocked() || properties.isFriend()) { if (!user.isLocked() || properties.isFriend()) {
Intent follower = new Intent(this, UserDetail.class); Intent follower = new Intent(this, UserDetail.class);
follower.putExtra(KEY_USERDETAIL_ID, userId); follower.putExtra(KEY_USERDETAIL_ID, userId);
follower.putExtra(KEY_USERDETAIL_MODE, FOLLOWERS); follower.putExtra(KEY_USERDETAIL_MODE, USERLIST_FOLLOWER);
startActivity(follower); startActivity(follower);
} }
} }
@ -423,7 +423,7 @@ public class UserProfile extends AppCompatActivity implements OnClickListener,
if (user != null) { if (user != null) {
Intent image = new Intent(this, MediaViewer.class); Intent image = new Intent(this, MediaViewer.class);
image.putExtra(KEY_MEDIA_LINK, new String[]{user.getImageLink()}); image.putExtra(KEY_MEDIA_LINK, new String[]{user.getImageLink()});
image.putExtra(KEY_MEDIA_TYPE, IMAGE); image.putExtra(KEY_MEDIA_TYPE, MEDIAVIEWER_IMAGE);
startActivity(image); startActivity(image);
} }
} }

View File

@ -11,18 +11,30 @@ import org.nuclearfog.twidda.fragment.ListFragment;
import org.nuclearfog.twidda.fragment.MessageFragment; import org.nuclearfog.twidda.fragment.MessageFragment;
import org.nuclearfog.twidda.fragment.TrendFragment; import org.nuclearfog.twidda.fragment.TrendFragment;
import org.nuclearfog.twidda.fragment.TweetFragment; import org.nuclearfog.twidda.fragment.TweetFragment;
import org.nuclearfog.twidda.fragment.TweetFragment.TweetType;
import org.nuclearfog.twidda.fragment.UserFragment; import org.nuclearfog.twidda.fragment.UserFragment;
import org.nuclearfog.twidda.fragment.UserFragment.UserType;
import static org.nuclearfog.twidda.fragment.ListFragment.KEY_FRAG_LIST; import static org.nuclearfog.twidda.fragment.ListFragment.KEY_FRAG_LIST;
import static org.nuclearfog.twidda.fragment.TweetFragment.KEY_FRAG_TWEET_FIX_LAYOUT; import static org.nuclearfog.twidda.fragment.TweetFragment.KEY_FRAG_TWEET_FIX_LAYOUT;
import static org.nuclearfog.twidda.fragment.TweetFragment.KEY_FRAG_TWEET_ID; import static org.nuclearfog.twidda.fragment.TweetFragment.KEY_FRAG_TWEET_ID;
import static org.nuclearfog.twidda.fragment.TweetFragment.KEY_FRAG_TWEET_MODE; import static org.nuclearfog.twidda.fragment.TweetFragment.KEY_FRAG_TWEET_MODE;
import static org.nuclearfog.twidda.fragment.TweetFragment.KEY_FRAG_TWEET_SEARCH; import static org.nuclearfog.twidda.fragment.TweetFragment.KEY_FRAG_TWEET_SEARCH;
import static org.nuclearfog.twidda.fragment.TweetFragment.TWEET_FRAG_ANSWER;
import static org.nuclearfog.twidda.fragment.TweetFragment.TWEET_FRAG_FAVORS;
import static org.nuclearfog.twidda.fragment.TweetFragment.TWEET_FRAG_HOME;
import static org.nuclearfog.twidda.fragment.TweetFragment.TWEET_FRAG_LIST;
import static org.nuclearfog.twidda.fragment.TweetFragment.TWEET_FRAG_MENT;
import static org.nuclearfog.twidda.fragment.TweetFragment.TWEET_FRAG_SEARCH;
import static org.nuclearfog.twidda.fragment.TweetFragment.TWEET_FRAG_TWEETS;
import static org.nuclearfog.twidda.fragment.UserFragment.KEY_FRAG_USER_ID; import static org.nuclearfog.twidda.fragment.UserFragment.KEY_FRAG_USER_ID;
import static org.nuclearfog.twidda.fragment.UserFragment.KEY_FRAG_USER_MODE; import static org.nuclearfog.twidda.fragment.UserFragment.KEY_FRAG_USER_MODE;
import static org.nuclearfog.twidda.fragment.UserFragment.KEY_FRAG_USER_SEARCH; import static org.nuclearfog.twidda.fragment.UserFragment.KEY_FRAG_USER_SEARCH;
import static org.nuclearfog.twidda.fragment.UserFragment.USER_FRAG_FAVORIT;
import static org.nuclearfog.twidda.fragment.UserFragment.USER_FRAG_FOLLOWS;
import static org.nuclearfog.twidda.fragment.UserFragment.USER_FRAG_FRIENDS;
import static org.nuclearfog.twidda.fragment.UserFragment.USER_FRAG_LISTS;
import static org.nuclearfog.twidda.fragment.UserFragment.USER_FRAG_RETWEET;
import static org.nuclearfog.twidda.fragment.UserFragment.USER_FRAG_SEARCH;
import static org.nuclearfog.twidda.fragment.UserFragment.USER_FRAG_SUBSCRIBER;
public class FragmentAdapter extends FragmentStatePagerAdapter { public class FragmentAdapter extends FragmentStatePagerAdapter {
@ -47,8 +59,8 @@ public class FragmentAdapter extends FragmentStatePagerAdapter {
super(fManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT); super(fManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
Bundle home_tl = new Bundle(); Bundle home_tl = new Bundle();
Bundle ment_tl = new Bundle(); Bundle ment_tl = new Bundle();
home_tl.putSerializable(KEY_FRAG_TWEET_MODE, TweetType.HOME); home_tl.putInt(KEY_FRAG_TWEET_MODE, TWEET_FRAG_HOME);
ment_tl.putSerializable(KEY_FRAG_TWEET_MODE, TweetType.MENT); ment_tl.putInt(KEY_FRAG_TWEET_MODE, TWEET_FRAG_MENT);
home_tl.putBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, true); home_tl.putBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, true);
ment_tl.putBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, true); ment_tl.putBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, true);
fragments = new Fragment[3]; fragments = new Fragment[3];
@ -70,8 +82,8 @@ public class FragmentAdapter extends FragmentStatePagerAdapter {
usr_favor.putLong(KEY_FRAG_TWEET_ID, id); usr_favor.putLong(KEY_FRAG_TWEET_ID, id);
usr_tweet.putBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, false); usr_tweet.putBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, false);
usr_tweet.putBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, false); usr_tweet.putBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, false);
usr_tweet.putSerializable(KEY_FRAG_TWEET_MODE, TweetType.USER_TWEET); usr_tweet.putInt(KEY_FRAG_TWEET_MODE, TWEET_FRAG_TWEETS);
usr_favor.putSerializable(KEY_FRAG_TWEET_MODE, TweetType.USER_FAVOR); usr_favor.putInt(KEY_FRAG_TWEET_MODE, TWEET_FRAG_FAVORS);
fragments = new Fragment[2]; fragments = new Fragment[2];
fragments[0] = new TweetFragment(); fragments[0] = new TweetFragment();
fragments[1] = new TweetFragment(); fragments[1] = new TweetFragment();
@ -84,8 +96,8 @@ public class FragmentAdapter extends FragmentStatePagerAdapter {
Bundle userSearch = new Bundle(); Bundle userSearch = new Bundle();
tweetSearch.putString(KEY_FRAG_TWEET_SEARCH, search); tweetSearch.putString(KEY_FRAG_TWEET_SEARCH, search);
userSearch.putString(KEY_FRAG_USER_SEARCH, search); userSearch.putString(KEY_FRAG_USER_SEARCH, search);
tweetSearch.putSerializable(KEY_FRAG_TWEET_MODE, TweetType.SEARCH); tweetSearch.putInt(KEY_FRAG_TWEET_MODE, TWEET_FRAG_SEARCH);
userSearch.putSerializable(KEY_FRAG_USER_MODE, UserType.USEARCH); userSearch.putInt(KEY_FRAG_USER_MODE, USER_FRAG_SEARCH);
tweetSearch.putBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, true); tweetSearch.putBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, true);
fragments = new Fragment[2]; fragments = new Fragment[2];
fragments[0] = new TweetFragment(); fragments[0] = new TweetFragment();
@ -96,7 +108,7 @@ public class FragmentAdapter extends FragmentStatePagerAdapter {
case TWEET_PAGE: case TWEET_PAGE:
Bundle param = new Bundle(); Bundle param = new Bundle();
param.putSerializable(KEY_FRAG_TWEET_MODE, TweetType.TWEET_ANSR); param.putInt(KEY_FRAG_TWEET_MODE, TWEET_FRAG_ANSWER);
param.putString(KEY_FRAG_TWEET_SEARCH, search); param.putString(KEY_FRAG_TWEET_SEARCH, search);
param.putBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, false); param.putBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, false);
param.putLong(KEY_FRAG_TWEET_ID, id); param.putLong(KEY_FRAG_TWEET_ID, id);
@ -113,7 +125,7 @@ public class FragmentAdapter extends FragmentStatePagerAdapter {
case FRIENDS_PAGE: case FRIENDS_PAGE:
Bundle uParam = new Bundle(); Bundle uParam = new Bundle();
uParam.putLong(KEY_FRAG_USER_ID, id); uParam.putLong(KEY_FRAG_USER_ID, id);
uParam.putSerializable(KEY_FRAG_USER_MODE, UserType.FRIENDS); uParam.putInt(KEY_FRAG_USER_MODE, USER_FRAG_FRIENDS);
fragments = new Fragment[1]; fragments = new Fragment[1];
fragments[0] = new UserFragment(); fragments[0] = new UserFragment();
fragments[0].setArguments(uParam); fragments[0].setArguments(uParam);
@ -122,7 +134,7 @@ public class FragmentAdapter extends FragmentStatePagerAdapter {
case FOLLOWER_PAGE: case FOLLOWER_PAGE:
uParam = new Bundle(); uParam = new Bundle();
uParam.putLong(KEY_FRAG_USER_ID, id); uParam.putLong(KEY_FRAG_USER_ID, id);
uParam.putSerializable(KEY_FRAG_USER_MODE, UserType.FOLLOWS); uParam.putInt(KEY_FRAG_USER_MODE, USER_FRAG_FOLLOWS);
fragments = new Fragment[1]; fragments = new Fragment[1];
fragments[0] = new UserFragment(); fragments[0] = new UserFragment();
fragments[0].setArguments(uParam); fragments[0].setArguments(uParam);
@ -131,7 +143,7 @@ public class FragmentAdapter extends FragmentStatePagerAdapter {
case RETWEETER_PAGE: case RETWEETER_PAGE:
uParam = new Bundle(); uParam = new Bundle();
uParam.putLong(KEY_FRAG_USER_ID, id); uParam.putLong(KEY_FRAG_USER_ID, id);
uParam.putSerializable(KEY_FRAG_USER_MODE, UserType.RETWEET); uParam.putInt(KEY_FRAG_USER_MODE, USER_FRAG_RETWEET);
fragments = new Fragment[1]; fragments = new Fragment[1];
fragments[0] = new UserFragment(); fragments[0] = new UserFragment();
fragments[0].setArguments(uParam); fragments[0].setArguments(uParam);
@ -140,7 +152,7 @@ public class FragmentAdapter extends FragmentStatePagerAdapter {
case FAVOR_PAGE: case FAVOR_PAGE:
uParam = new Bundle(); uParam = new Bundle();
uParam.putLong(KEY_FRAG_USER_ID, id); uParam.putLong(KEY_FRAG_USER_ID, id);
uParam.putSerializable(KEY_FRAG_USER_MODE, UserType.FAVORIT); uParam.putInt(KEY_FRAG_USER_MODE, USER_FRAG_FAVORIT);
fragments = new Fragment[1]; fragments = new Fragment[1];
fragments[0] = new UserFragment(); fragments[0] = new UserFragment();
fragments[0].setArguments(uParam); fragments[0].setArguments(uParam);
@ -157,7 +169,7 @@ public class FragmentAdapter extends FragmentStatePagerAdapter {
case SUBSCRIBER_PAGE: case SUBSCRIBER_PAGE:
uParam = new Bundle(); uParam = new Bundle();
uParam.putLong(KEY_FRAG_USER_ID, id); uParam.putLong(KEY_FRAG_USER_ID, id);
uParam.putSerializable(KEY_FRAG_USER_MODE, UserType.SUBSCR); uParam.putInt(KEY_FRAG_USER_MODE, USER_FRAG_SUBSCRIBER);
fragments = new Fragment[1]; fragments = new Fragment[1];
fragments[0] = new UserFragment(); fragments[0] = new UserFragment();
fragments[0].setArguments(uParam); fragments[0].setArguments(uParam);
@ -168,8 +180,8 @@ public class FragmentAdapter extends FragmentStatePagerAdapter {
Bundle userList = new Bundle(); Bundle userList = new Bundle();
tweetList.putLong(KEY_FRAG_TWEET_ID, id); tweetList.putLong(KEY_FRAG_TWEET_ID, id);
userList.putLong(KEY_FRAG_USER_ID, id); userList.putLong(KEY_FRAG_USER_ID, id);
tweetList.putSerializable(KEY_FRAG_TWEET_MODE, TweetType.LIST); tweetList.putInt(KEY_FRAG_TWEET_MODE, TWEET_FRAG_LIST);
userList.putSerializable(KEY_FRAG_USER_MODE, UserType.LIST); userList.putInt(KEY_FRAG_USER_MODE, USER_FRAG_LISTS);
tweetList.putBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, true); tweetList.putBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, true);
fragments = new Fragment[2]; fragments = new Fragment[2];
fragments[0] = new TweetFragment(); fragments[0] = new TweetFragment();

View File

@ -32,7 +32,7 @@ import static org.nuclearfog.twidda.activity.ListDetail.KEY_LISTDETAIL_ID;
import static org.nuclearfog.twidda.activity.ListDetail.KEY_LISTDETAIL_NAME; import static org.nuclearfog.twidda.activity.ListDetail.KEY_LISTDETAIL_NAME;
import static org.nuclearfog.twidda.activity.UserDetail.KEY_USERDETAIL_ID; import static org.nuclearfog.twidda.activity.UserDetail.KEY_USERDETAIL_ID;
import static org.nuclearfog.twidda.activity.UserDetail.KEY_USERDETAIL_MODE; import static org.nuclearfog.twidda.activity.UserDetail.KEY_USERDETAIL_MODE;
import static org.nuclearfog.twidda.activity.UserDetail.UserType.SUBSCRIBER; import static org.nuclearfog.twidda.activity.UserDetail.USERLIST_SUBSCRIBER;
import static org.nuclearfog.twidda.activity.UserProfile.KEY_PROFILE_ID; import static org.nuclearfog.twidda.activity.UserProfile.KEY_PROFILE_ID;
import static org.nuclearfog.twidda.backend.ListLoader.Action.DELETE; import static org.nuclearfog.twidda.backend.ListLoader.Action.DELETE;
import static org.nuclearfog.twidda.backend.ListLoader.Action.FOLLOW; import static org.nuclearfog.twidda.backend.ListLoader.Action.FOLLOW;
@ -108,7 +108,7 @@ public class ListFragment extends Fragment implements OnRefreshListener, ListCli
case FOLLOW: case FOLLOW:
if (listItem.isFollowing()) { if (listItem.isFollowing()) {
if (getContext() != null) { if (getContext() != null) {
Builder confirmDialog = new Builder(getContext()); Builder confirmDialog = new Builder(getContext(), R.style.InfoDialog);
confirmDialog.setMessage(R.string.confirm_unfollow_list); confirmDialog.setMessage(R.string.confirm_unfollow_list);
confirmDialog.setNegativeButton(R.string.no_confirm, null); confirmDialog.setNegativeButton(R.string.no_confirm, null);
confirmDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() { confirmDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {
@ -129,7 +129,7 @@ public class ListFragment extends Fragment implements OnRefreshListener, ListCli
case SUBSCRIBER: case SUBSCRIBER:
Intent following = new Intent(getContext(), UserDetail.class); Intent following = new Intent(getContext(), UserDetail.class);
following.putExtra(KEY_USERDETAIL_ID, listItem.getId()); following.putExtra(KEY_USERDETAIL_ID, listItem.getId());
following.putExtra(KEY_USERDETAIL_MODE, SUBSCRIBER); following.putExtra(KEY_USERDETAIL_MODE, USERLIST_SUBSCRIBER);
startActivity(following); startActivity(following);
break; break;
@ -142,7 +142,7 @@ public class ListFragment extends Fragment implements OnRefreshListener, ListCli
case DELETE: case DELETE:
if (getContext() != null) { if (getContext() != null) {
Builder confirmDialog = new Builder(getContext()); Builder confirmDialog = new Builder(getContext(), R.style.InfoDialog);
confirmDialog.setMessage(R.string.confirm_delete_list); confirmDialog.setMessage(R.string.confirm_delete_list);
confirmDialog.setNegativeButton(R.string.no_confirm, null); confirmDialog.setNegativeButton(R.string.no_confirm, null);
confirmDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() { confirmDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {

View File

@ -126,7 +126,7 @@ public class MessageFragment extends Fragment implements OnRefreshListener, OnIt
case DELETE: case DELETE:
if (getContext() != null) { if (getContext() != null) {
Builder confirmDialog = new Builder(getContext()); Builder confirmDialog = new Builder(getContext(), R.style.InfoDialog);
confirmDialog.setMessage(R.string.confirm_delete_message); confirmDialog.setMessage(R.string.confirm_delete_message);
confirmDialog.setNegativeButton(R.string.no_confirm, null); confirmDialog.setNegativeButton(R.string.no_confirm, null);
confirmDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() { confirmDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {

View File

@ -34,7 +34,6 @@ public class TrendFragment extends Fragment implements OnRefreshListener, TrendC
private RecyclerView list; private RecyclerView list;
private TrendAdapter adapter; private TrendAdapter adapter;
private GlobalSettings settings; private GlobalSettings settings;
private boolean notifyChange; private boolean notifyChange;
@Override @Override

View File

@ -36,28 +36,26 @@ public class TweetFragment extends Fragment implements OnRefreshListener, TweetC
public static final String KEY_FRAG_TWEET_ID = "tweet_id"; public static final String KEY_FRAG_TWEET_ID = "tweet_id";
public static final String KEY_FRAG_TWEET_FIX_LAYOUT = "tweet_fix_layout"; public static final String KEY_FRAG_TWEET_FIX_LAYOUT = "tweet_fix_layout";
public static final int TWEET_FRAG_HOME = 0;
public static final int TWEET_FRAG_MENT = 1;
public static final int TWEET_FRAG_TWEETS = 2;
public static final int TWEET_FRAG_FAVORS = 3;
public static final int TWEET_FRAG_ANSWER = 4;
public static final int TWEET_FRAG_SEARCH = 5;
public static final int TWEET_FRAG_LIST = 6;
private static final int REQUEST_TWEET_CHANGED = 3; private static final int REQUEST_TWEET_CHANGED = 3;
public static final int RETURN_TWEET_CHANGED = 4; public static final int RETURN_TWEET_CHANGED = 4;
public enum TweetType {
HOME,
MENT,
USER_TWEET,
USER_FAVOR,
TWEET_ANSR,
SEARCH,
LIST
}
private TweetLoader tweetTask; private TweetLoader tweetTask;
private GlobalSettings settings; private GlobalSettings settings;
private SwipeRefreshLayout reload; private SwipeRefreshLayout reload;
private RecyclerView list; private RecyclerView list;
private TweetAdapter adapter; private TweetAdapter adapter;
private TweetType mode;
private String search; private String search;
private long id, tweetId; private long id, tweetId;
private int mode;
private boolean notifyChange; private boolean notifyChange;
@ -68,7 +66,7 @@ public class TweetFragment extends Fragment implements OnRefreshListener, TweetC
Context context = inflater.getContext(); Context context = inflater.getContext();
if (b != null) { if (b != null) {
mode = (TweetType) b.getSerializable(KEY_FRAG_TWEET_MODE); mode = b.getInt(KEY_FRAG_TWEET_MODE);
id = b.getLong(KEY_FRAG_TWEET_ID, -1); id = b.getLong(KEY_FRAG_TWEET_ID, -1);
search = b.getString(KEY_FRAG_TWEET_SEARCH, ""); search = b.getString(KEY_FRAG_TWEET_SEARCH, "");
fixSize = b.getBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, false); fixSize = b.getBoolean(KEY_FRAG_TWEET_FIX_LAYOUT, false);
@ -179,27 +177,27 @@ public class TweetFragment extends Fragment implements OnRefreshListener, TweetC
private void load() { private void load() {
switch (mode) { switch (mode) {
case HOME: case TWEET_FRAG_HOME:
tweetTask = new TweetLoader(this, Mode.TL_HOME); tweetTask = new TweetLoader(this, Mode.TL_HOME);
tweetTask.execute(1); tweetTask.execute(1);
break; break;
case MENT: case TWEET_FRAG_MENT:
tweetTask = new TweetLoader(this, Mode.TL_MENT); tweetTask = new TweetLoader(this, Mode.TL_MENT);
tweetTask.execute(1); tweetTask.execute(1);
break; break;
case USER_TWEET: case TWEET_FRAG_TWEETS:
tweetTask = new TweetLoader(this, Mode.USR_TWEETS); tweetTask = new TweetLoader(this, Mode.USR_TWEETS);
tweetTask.execute(id, 1); tweetTask.execute(id, 1);
break; break;
case USER_FAVOR: case TWEET_FRAG_FAVORS:
tweetTask = new TweetLoader(this, Mode.USR_FAVORS); tweetTask = new TweetLoader(this, Mode.USR_FAVORS);
tweetTask.execute(id, 1); tweetTask.execute(id, 1);
break; break;
case TWEET_ANSR: case TWEET_FRAG_ANSWER:
boolean loadAnswer = settings.getAnswerLoad(); boolean loadAnswer = settings.getAnswerLoad();
if (tweetTask != null || loadAnswer) if (tweetTask != null || loadAnswer)
tweetTask = new TweetLoader(this, Mode.TWEET_ANS); tweetTask = new TweetLoader(this, Mode.TWEET_ANS);
@ -208,12 +206,12 @@ public class TweetFragment extends Fragment implements OnRefreshListener, TweetC
tweetTask.execute(id, search); tweetTask.execute(id, search);
break; break;
case SEARCH: case TWEET_FRAG_SEARCH:
tweetTask = new TweetLoader(this, Mode.TWEET_SEARCH); tweetTask = new TweetLoader(this, Mode.TWEET_SEARCH);
tweetTask.execute(search); tweetTask.execute(search);
break; break;
case LIST: case TWEET_FRAG_LIST:
tweetTask = new TweetLoader(this, Mode.LIST); tweetTask = new TweetLoader(this, Mode.LIST);
tweetTask.execute(id, 1); tweetTask.execute(id, 1);
break; break;

View File

@ -34,24 +34,21 @@ public class UserFragment extends Fragment implements OnRefreshListener, UserCli
public static final String KEY_FRAG_USER_SEARCH = "user_search"; public static final String KEY_FRAG_USER_SEARCH = "user_search";
public static final String KEY_FRAG_USER_ID = "user_id"; public static final String KEY_FRAG_USER_ID = "user_id";
public enum UserType { public static final int USER_FRAG_FOLLOWS = 0;
FOLLOWS, public static final int USER_FRAG_FRIENDS = 1;
FRIENDS, public static final int USER_FRAG_RETWEET = 2;
RETWEET, public static final int USER_FRAG_FAVORIT = 3;
FAVORIT, public static final int USER_FRAG_SEARCH = 4;
USEARCH, public static final int USER_FRAG_SUBSCRIBER = 5;
SUBSCR, public static final int USER_FRAG_LISTS = 6;
LIST
}
private SwipeRefreshLayout reload; private SwipeRefreshLayout reload;
private UserAdapter adapter; private UserAdapter adapter;
private UserLoader userTask; private UserLoader userTask;
private RecyclerView list; private RecyclerView list;
private UserType mode;
private String search; private String search;
private long id; private long id;
private int mode;
@Override @Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup parent, Bundle param) { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup parent, Bundle param) {
@ -59,7 +56,7 @@ public class UserFragment extends Fragment implements OnRefreshListener, UserCli
Context context = inflater.getContext(); Context context = inflater.getContext();
GlobalSettings settings = GlobalSettings.getInstance(context); GlobalSettings settings = GlobalSettings.getInstance(context);
if (b != null) { if (b != null) {
mode = (UserType) b.getSerializable(KEY_FRAG_USER_MODE); mode = b.getInt(KEY_FRAG_USER_MODE);
id = b.getLong(KEY_FRAG_USER_ID, -1); id = b.getLong(KEY_FRAG_USER_ID, -1);
search = b.getString(KEY_FRAG_USER_SEARCH, ""); search = b.getString(KEY_FRAG_USER_SEARCH, "");
} }
@ -149,31 +146,31 @@ public class UserFragment extends Fragment implements OnRefreshListener, UserCli
private void load() { private void load() {
switch (mode) { switch (mode) {
case FOLLOWS: case USER_FRAG_FOLLOWS:
userTask = new UserLoader(this, Mode.FOLLOWS); userTask = new UserLoader(this, Mode.FOLLOWS);
userTask.execute(id); userTask.execute(id);
break; break;
case FRIENDS: case USER_FRAG_FRIENDS:
userTask = new UserLoader(this, Mode.FRIENDS); userTask = new UserLoader(this, Mode.FRIENDS);
userTask.execute(id); userTask.execute(id);
break; break;
case RETWEET: case USER_FRAG_RETWEET:
userTask = new UserLoader(this, Mode.RETWEET); userTask = new UserLoader(this, Mode.RETWEET);
userTask.execute(id); userTask.execute(id);
break; break;
case FAVORIT: case USER_FRAG_FAVORIT:
userTask = new UserLoader(this, Mode.FAVORIT); userTask = new UserLoader(this, Mode.FAVORIT);
userTask.execute(id); userTask.execute(id);
break; break;
case USEARCH: case USER_FRAG_SEARCH:
userTask = new UserLoader(this, Mode.SEARCH); userTask = new UserLoader(this, Mode.SEARCH);
userTask.execute(search); userTask.execute(search);
break; break;
case SUBSCR: case USER_FRAG_SUBSCRIBER:
userTask = new UserLoader(this, Mode.SUBSCRIBER); userTask = new UserLoader(this, Mode.SUBSCRIBER);
userTask.execute(id); userTask.execute(id);
break; break;
case LIST: case USER_FRAG_LISTS:
userTask = new UserLoader(this, Mode.LIST); userTask = new UserLoader(this, Mode.LIST);
userTask.execute(id); userTask.execute(id);
break; break;

View File

@ -204,7 +204,7 @@
android:layout_height="@dimen/button_dm" android:layout_height="@dimen/button_dm"
android:layout_margin="@dimen/button_margin" android:layout_margin="@dimen/button_margin"
android:layout_weight="1" android:layout_weight="1"
android:background="@android:color/holo_red_dark" android:background="@drawable/button"
android:text="@string/delete_database" /> android:text="@string/delete_database" />
<Button <Button
@ -214,7 +214,7 @@
android:layout_height="@dimen/button_dm" android:layout_height="@dimen/button_dm"
android:layout_margin="@dimen/button_margin" android:layout_margin="@dimen/button_margin"
android:layout_weight="1" android:layout_weight="1"
android:background="@android:color/holo_red_dark" android:background="@drawable/button"
android:text="@string/logout" /> android:text="@string/logout" />
</LinearLayout> </LinearLayout>

View File

@ -2,4 +2,5 @@
<resources> <resources>
<color name="halftrancparency">#40000000</color> <color name="halftrancparency">#40000000</color>
<color name="darktrancparency">#80000000</color> <color name="darktrancparency">#80000000</color>
<color name="brighttrancparency">#afffffff</color>
</resources> </resources>

View File

@ -19,6 +19,13 @@
<item name="android:colorBackground">@color/darktrancparency</item> <item name="android:colorBackground">@color/darktrancparency</item>
</style> </style>
<style name="InfoDialog" parent="Theme.AppCompat.Dialog.Alert">
<item name="android:colorBackground">@color/brighttrancparency</item>
<item name="android:textColor">@android:color/holo_red_dark</item>
<item name="android:textColorPrimary">@android:color/black</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
<style name="TransactionPending" parent="@android:style/Animation"> <style name="TransactionPending" parent="@android:style/Animation">
<item name="android:windowEnterAnimation">@android:anim/fade_in</item> <item name="android:windowEnterAnimation">@android:anim/fade_in</item>
<item name="android:windowExitAnimation">@android:anim/fade_out</item> <item name="android:windowExitAnimation">@android:anim/fade_out</item>

View File

@ -6,7 +6,7 @@ buildscript {
google() google()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.5.3' classpath 'com.android.tools.build:gradle:3.6.1'
} }
} }

View File

@ -1,6 +1,6 @@
#Mon Jul 29 11:05:47 CEST 2019 #Wed Feb 26 10:24:58 CET 2020
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip