mirror of
https://github.com/KokaKiwi/BarInsta
synced 2026-03-04 11:31:35 +00:00
Merge branch 'master' into pr/850
This commit is contained in:
commit
dc1119c604
41 changed files with 518 additions and 200 deletions
|
|
@ -2,6 +2,15 @@ apply plugin: 'com.android.application'
|
|||
apply plugin: "androidx.navigation.safeargs"
|
||||
apply from: 'sentry.gradle'
|
||||
|
||||
def getGitHash = { ->
|
||||
def stdout = new ByteArrayOutputStream()
|
||||
exec {
|
||||
commandLine 'git', 'rev-parse', '--short', 'HEAD'
|
||||
standardOutput = stdout
|
||||
}
|
||||
return stdout.toString().trim()
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 29
|
||||
|
||||
|
|
@ -55,7 +64,7 @@ android {
|
|||
productFlavors {
|
||||
github {
|
||||
dimension "repo"
|
||||
versionNameSuffix "-github"
|
||||
// versionNameSuffix "-github" // appended in assemble task
|
||||
buildConfigField("String", "dsn", SENTRY_DSN)
|
||||
}
|
||||
|
||||
|
|
@ -64,6 +73,25 @@ android {
|
|||
versionNameSuffix "-fdroid"
|
||||
}
|
||||
}
|
||||
|
||||
android.applicationVariants.all { variant ->
|
||||
if (variant.flavorName != "github") return
|
||||
variant.outputs.all { output ->
|
||||
def builtType = variant.buildType.name
|
||||
def versionName = variant.versionName
|
||||
// def versionCode = variant.versionCode
|
||||
def flavor = variant.flavorName
|
||||
|
||||
def suffix = "${versionName}-${flavor}_${builtType}" // eg. 19.1.0-github_debug or release
|
||||
if (builtType.toString() == 'release' && project.hasProperty("pre")) {
|
||||
// append latest commit short hash for pre-release
|
||||
suffix = "${versionName}.${getGitHash()}-${flavor}" // eg. 19.1.0.b123456-github
|
||||
}
|
||||
|
||||
output.versionNameOverride = suffix
|
||||
outputFileName = "barinsta_${suffix}.apk"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
configurations.all {
|
||||
|
|
@ -85,7 +113,7 @@ dependencies {
|
|||
|
||||
implementation "androidx.appcompat:appcompat:$appcompat_version"
|
||||
implementation "androidx.appcompat:appcompat-resources:$appcompat_version"
|
||||
implementation "androidx.recyclerview:recyclerview:1.2.0-beta02"
|
||||
implementation "androidx.recyclerview:recyclerview:1.2.0-rc01"
|
||||
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
|
||||
implementation "androidx.viewpager2:viewpager2:1.0.0"
|
||||
implementation "androidx.navigation:navigation-fragment:$nav_version"
|
||||
|
|
@ -105,7 +133,7 @@ dependencies {
|
|||
annotationProcessor "androidx.room:room-compiler:$room_version"
|
||||
|
||||
// CameraX
|
||||
def camerax_version = "1.1.0-alpha02"
|
||||
def camerax_version = "1.1.0-alpha03"
|
||||
implementation "androidx.camera:camera-camera2:$camerax_version"
|
||||
implementation "androidx.camera:camera-lifecycle:$camerax_version"
|
||||
implementation "androidx.camera:camera-view:1.0.0-alpha22"
|
||||
|
|
@ -129,9 +157,9 @@ dependencies {
|
|||
implementation 'com.github.ammargitham:uCrop:2.3-native-beta-2'
|
||||
implementation 'com.github.ammargitham:android-gpuimage:2.1.1-beta4'
|
||||
|
||||
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.6'
|
||||
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.7'
|
||||
|
||||
githubImplementation 'io.sentry:sentry-android:4.3.0'
|
||||
|
||||
|
||||
testImplementation 'org.junit.jupiter:junit-jupiter:5.7.1'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ import awais.instagrabber.adapters.DirectItemsAdapter.DirectItemCallback;
|
|||
import awais.instagrabber.databinding.LayoutDmBaseBinding;
|
||||
import awais.instagrabber.databinding.LayoutDmProfileBinding;
|
||||
import awais.instagrabber.models.enums.DirectItemType;
|
||||
import awais.instagrabber.repositories.responses.ImageVersions2;
|
||||
import awais.instagrabber.repositories.responses.Location;
|
||||
import awais.instagrabber.repositories.responses.Media;
|
||||
import awais.instagrabber.repositories.responses.User;
|
||||
|
|
@ -97,7 +96,13 @@ public class DirectItemProfileViewHolder extends DirectItemViewHolder {
|
|||
if (profile == null) return;
|
||||
binding.profilePic.setImageURI(profile.getProfilePicUrl());
|
||||
binding.username.setText(profile.getUsername());
|
||||
binding.fullName.setText(profile.getFullName());
|
||||
final String fullName = profile.getFullName();
|
||||
if (!TextUtils.isEmpty(fullName)) {
|
||||
binding.fullName.setVisibility(View.VISIBLE);
|
||||
binding.fullName.setText(fullName);
|
||||
} else {
|
||||
binding.fullName.setVisibility(View.GONE);
|
||||
}
|
||||
binding.isVerified.setVisibility(profile.isVerified() ? View.VISIBLE : View.GONE);
|
||||
itemView.setOnClickListener(v -> openProfile(profile.getUsername()));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package awais.instagrabber.customviews.masoudss_waveform;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapShader;
|
||||
import android.graphics.Canvas;
|
||||
|
|
@ -50,8 +51,21 @@ public final class WaveformSeekBar extends View {
|
|||
|
||||
public WaveformSeekBar(final Context context, @Nullable final AttributeSet attrs, final int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
this.waveBackgroundColor = context.getResources().getColor(R.color.white);
|
||||
this.waveProgressColor = context.getResources().getColor(R.color.blue_800);
|
||||
final TypedArray a = context.getTheme().obtainStyledAttributes(
|
||||
attrs,
|
||||
R.styleable.WaveformSeekBar,
|
||||
0,
|
||||
0);
|
||||
final int backgroundColor;
|
||||
final int progressColor;
|
||||
try {
|
||||
backgroundColor = a.getResourceId(R.styleable.WaveformSeekBar_waveformBackgroundColor, R.color.white);
|
||||
progressColor = a.getResourceId(R.styleable.WaveformSeekBar_waveformProgressColor, R.color.blue_800);
|
||||
} finally {
|
||||
a.recycle();
|
||||
}
|
||||
this.waveBackgroundColor = context.getResources().getColor(backgroundColor);
|
||||
this.waveProgressColor = context.getResources().getColor(progressColor);
|
||||
}
|
||||
|
||||
private float getSampleMax() {
|
||||
|
|
|
|||
|
|
@ -292,7 +292,7 @@ public class CollectionPostsFragment extends Fragment implements SwipeRefreshLay
|
|||
else if (item.getItemId() == R.id.delete) {
|
||||
final Context context = getContext();
|
||||
new AlertDialog.Builder(context)
|
||||
.setTitle(R.string.edit_collection)
|
||||
.setTitle(R.string.delete_collection)
|
||||
.setMessage(R.string.delete_collection_note)
|
||||
.setPositiveButton(R.string.confirm, (d, w) -> {
|
||||
collectionService.deleteCollection(
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ public final class StoryListViewerFragment extends Fragment implements SwipeRefr
|
|||
public void onHighlightClick(final HighlightModel model, final int position) {
|
||||
if (model == null) return;
|
||||
final NavDirections action = StoryListViewerFragmentDirections
|
||||
.actionStoryListFragmentToStoryViewerFragment(StoryViewerOptions.forStoryArchive(position));
|
||||
.actionStoryListFragmentToStoryViewerFragment(StoryViewerOptions.forStoryArchive(model.getId()));
|
||||
NavHostFragment.findNavController(StoryListViewerFragment.this).navigate(action);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -65,6 +65,8 @@ import java.util.ArrayList;
|
|||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import awais.instagrabber.BuildConfig;
|
||||
import awais.instagrabber.R;
|
||||
|
|
@ -304,11 +306,18 @@ public class StoryViewerFragment extends Fragment {
|
|||
// isNotification = fragmentArgs.getIsNotification();
|
||||
final Type type = options.getType();
|
||||
if (currentFeedStoryIndex >= 0) {
|
||||
viewModel = type == Type.HIGHLIGHT
|
||||
? type == Type.STORY_ARCHIVE
|
||||
? new ViewModelProvider(fragmentActivity).get(ArchivesViewModel.class)
|
||||
: new ViewModelProvider(fragmentActivity).get(HighlightsViewModel.class)
|
||||
: new ViewModelProvider(fragmentActivity).get(FeedStoriesViewModel.class);
|
||||
switch (type) {
|
||||
case HIGHLIGHT:
|
||||
viewModel = new ViewModelProvider(fragmentActivity).get(HighlightsViewModel.class);
|
||||
break;
|
||||
case STORY_ARCHIVE:
|
||||
viewModel = new ViewModelProvider(fragmentActivity).get(ArchivesViewModel.class);
|
||||
break;
|
||||
default:
|
||||
case FEED_STORY_POSITION:
|
||||
viewModel = new ViewModelProvider(fragmentActivity).get(FeedStoriesViewModel.class);
|
||||
break;
|
||||
}
|
||||
}
|
||||
setupStories();
|
||||
}
|
||||
|
|
@ -728,9 +737,9 @@ public class StoryViewerFragment extends Fragment {
|
|||
return;
|
||||
}
|
||||
final HighlightModel model = models.get(currentFeedStoryIndex);
|
||||
currentStoryMediaId = model.getId();
|
||||
currentStoryMediaId = parseStoryMediaId(model.getId());
|
||||
currentStoryUsername = model.getTitle();
|
||||
fetchOptions = StoryViewerOptions.forUser(Long.parseLong(currentStoryMediaId), currentStoryUsername);
|
||||
fetchOptions = StoryViewerOptions.forStoryArchive(model.getId());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1139,4 +1148,20 @@ public class StoryViewerFragment extends Fragment {
|
|||
resetView();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses the Story's media ID. For user stories this is a number, but for archive stories
|
||||
* this is "archiveDay:" plus a number.
|
||||
*/
|
||||
private static String parseStoryMediaId(String rawId) {
|
||||
final String regex = "(?:archiveDay:)?(.+)";
|
||||
final Pattern pattern = Pattern.compile(regex);
|
||||
final Matcher matcher = pattern.matcher(rawId);
|
||||
|
||||
if (matcher.matches() && matcher.groupCount() >= 1) {
|
||||
return matcher.group(1);
|
||||
}
|
||||
|
||||
return rawId;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -140,6 +140,7 @@ public class DirectMessageSettingsFragment extends Fragment implements ConfirmDi
|
|||
viewModel.isViewerAdmin().observe(getViewLifecycleOwner(), this::setApprovalRelatedUI);
|
||||
viewModel.getApprovalRequiredToJoin().observe(getViewLifecycleOwner(), required -> binding.approvalRequired.setChecked(required));
|
||||
viewModel.getPendingRequests().observe(getViewLifecycleOwner(), this::setPendingRequests);
|
||||
viewModel.isGroup().observe(getViewLifecycleOwner(), this::setupSettings);
|
||||
final NavController navController = NavHostFragment.findNavController(this);
|
||||
final NavBackStackEntry backStackEntry = navController.getCurrentBackStackEntry();
|
||||
if (backStackEntry != null) {
|
||||
|
|
@ -207,13 +208,11 @@ public class DirectMessageSettingsFragment extends Fragment implements ConfirmDi
|
|||
}
|
||||
|
||||
private void init() {
|
||||
setupSettings();
|
||||
// setupSettings();
|
||||
setupMembers();
|
||||
}
|
||||
|
||||
private void setupSettings() {
|
||||
Boolean isGroup = viewModel.isGroup().getValue();
|
||||
if (isGroup == null) isGroup = false;
|
||||
private void setupSettings(final boolean isGroup) {
|
||||
binding.groupSettings.setVisibility(isGroup ? View.VISIBLE : View.GONE);
|
||||
binding.muteMessagesLabel.setOnClickListener(v -> binding.muteMessages.toggle());
|
||||
binding.muteMessages.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
|
|
|
|||
|
|
@ -1227,7 +1227,10 @@ public class DirectMessageThreadFragment extends Fragment implements DirectReact
|
|||
if (!isEmojiPickerShown) {
|
||||
binding.emojiPicker.setAlpha(0);
|
||||
}
|
||||
imm.showSoftInput(binding.input, InputMethodManager.SHOW_IMPLICIT);
|
||||
final boolean shown = imm.showSoftInput(binding.input, InputMethodManager.SHOW_IMPLICIT);
|
||||
if (!shown) {
|
||||
Log.e(TAG, "showKeyboard: System did not display the keyboard");
|
||||
}
|
||||
if (!isEmojiPickerShown) {
|
||||
animatePan(keyboardHeight);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -592,10 +592,6 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||
binding.swipeRefreshLayout.setEnabled(false);
|
||||
binding.privatePage1.setImageResource(R.drawable.ic_outline_info_24);
|
||||
binding.privatePage2.setText(R.string.no_acc);
|
||||
final CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) binding.privatePage.getLayoutParams();
|
||||
layoutParams.topMargin = 0;
|
||||
layoutParams.gravity = Gravity.CENTER;
|
||||
binding.privatePage.setLayoutParams(layoutParams);
|
||||
binding.privatePage.setVisibility(View.VISIBLE);
|
||||
return;
|
||||
}
|
||||
|
|
@ -685,6 +681,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||
binding.postsRecyclerView.refresh();
|
||||
}
|
||||
profileDetailsBinding.isVerified.setVisibility(profileModel.isVerified() ? View.VISIBLE : View.GONE);
|
||||
profileDetailsBinding.isPrivate.setVisibility(profileModel.isPrivate() ? View.VISIBLE : View.GONE);
|
||||
final long profileId = profileModel.getPk();
|
||||
if (isLoggedIn) {
|
||||
fetchStoryAndHighlights(profileId);
|
||||
|
|
@ -919,11 +916,11 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||
} else {
|
||||
profileDetailsBinding.mainFollowers.setClickable(false);
|
||||
profileDetailsBinding.mainFollowing.setClickable(false);
|
||||
// error
|
||||
binding.privatePage1.setImageResource(R.drawable.lock);
|
||||
binding.privatePage2.setText(R.string.priv_acc);
|
||||
binding.privatePage.setVisibility(View.VISIBLE);
|
||||
binding.postsRecyclerView.setVisibility(View.GONE);
|
||||
binding.swipeRefreshLayout.setRefreshing(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1210,7 +1207,6 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||
}
|
||||
|
||||
private void updateSwipeRefreshState() {
|
||||
Log.d("austin_debug", "usrs: " + binding.postsRecyclerView.isFetching());
|
||||
binding.swipeRefreshLayout.setRefreshing(binding.postsRecyclerView.isFetching());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -179,6 +179,9 @@ public final class ThreadManager {
|
|||
return null;
|
||||
}
|
||||
final DirectInbox inbox = inboxResource.data;
|
||||
if (inbox == null) {
|
||||
return null;
|
||||
}
|
||||
final List<DirectThread> threads = inbox.getThreads();
|
||||
if (threads == null || threads.isEmpty()) {
|
||||
return null;
|
||||
|
|
@ -264,7 +267,10 @@ public final class ThreadManager {
|
|||
}
|
||||
|
||||
private List<User> getUsersWithCurrentUser(final DirectThread t) {
|
||||
final ImmutableList.Builder<User> builder = ImmutableList.<User>builder().add(currentUser);
|
||||
final ImmutableList.Builder<User> builder = ImmutableList.builder();
|
||||
if (currentUser != null) {
|
||||
builder.add(currentUser);
|
||||
}
|
||||
final List<User> users = t.getUsers();
|
||||
if (users != null) {
|
||||
builder.addAll(users);
|
||||
|
|
|
|||
|
|
@ -57,8 +57,8 @@ public class StoryViewerOptions implements Serializable {
|
|||
return new StoryViewerOptions(position, Type.FEED_STORY_POSITION);
|
||||
}
|
||||
|
||||
public static StoryViewerOptions forStoryArchive(final int position) {
|
||||
return new StoryViewerOptions(position, Type.STORY_ARCHIVE);
|
||||
public static StoryViewerOptions forStoryArchive(final String id) {
|
||||
return new StoryViewerOptions(id, Type.STORY_ARCHIVE);
|
||||
}
|
||||
|
||||
public long getId() {
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public class DirectItemActionLog implements Serializable {
|
|||
return Objects.hash(description, bold, textAttributes);
|
||||
}
|
||||
|
||||
public static class TextRange {
|
||||
public static class TextRange implements Serializable {
|
||||
private final int start;
|
||||
private final int end;
|
||||
private final String color;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,8 @@
|
|||
package awais.instagrabber.utils;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Environment;
|
||||
import android.util.Log;
|
||||
import android.webkit.MimeTypeMap;
|
||||
|
|
@ -13,8 +11,6 @@ import android.widget.Toast;
|
|||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.work.Constraints;
|
||||
import androidx.work.Data;
|
||||
import androidx.work.NetworkType;
|
||||
|
|
@ -90,17 +86,17 @@ public final class DownloadUtils {
|
|||
return dir;
|
||||
}
|
||||
|
||||
// public static void dmDownload(@NonNull final Context context,
|
||||
// @Nullable final String username,
|
||||
// final String modelId,
|
||||
// final String url) {
|
||||
// if (url == null) return;
|
||||
// if (ContextCompat.checkSelfPermission(context, PERMS[0]) == PackageManager.PERMISSION_GRANTED) {
|
||||
// dmDownloadImpl(context, username, modelId, url);
|
||||
// } else if (context instanceof Activity) {
|
||||
// ActivityCompat.requestPermissions((Activity) context, PERMS, 8020);
|
||||
// }
|
||||
// }
|
||||
// public static void dmDownload(@NonNull final Context context,
|
||||
// @Nullable final String username,
|
||||
// final String modelId,
|
||||
// final String url) {
|
||||
// if (url == null) return;
|
||||
// if (ContextCompat.checkSelfPermission(context, PERMS[0]) == PackageManager.PERMISSION_GRANTED) {
|
||||
// dmDownloadImpl(context, username, modelId, url);
|
||||
// } else if (context instanceof Activity) {
|
||||
// ActivityCompat.requestPermissions((Activity) context, PERMS, 8020);
|
||||
// }
|
||||
// }
|
||||
|
||||
private static void dmDownloadImpl(@NonNull final Context context,
|
||||
@Nullable final String username,
|
||||
|
|
@ -294,7 +290,8 @@ public final class DownloadUtils {
|
|||
final int childPositionIfSingle) {
|
||||
final Map<String, String> map = new HashMap<>();
|
||||
for (final Media media : feedModels) {
|
||||
final File downloadDir = getDownloadDir(context, "@" + media.getUser().getUsername());
|
||||
final User mediaUser = media.getUser();
|
||||
final File downloadDir = getDownloadDir(context, mediaUser == null ? "" : "@" + mediaUser.getUsername());
|
||||
if (downloadDir == null) return;
|
||||
switch (media.getMediaType()) {
|
||||
case MEDIA_TYPE_IMAGE:
|
||||
|
|
@ -307,9 +304,8 @@ public final class DownloadUtils {
|
|||
case MEDIA_TYPE_VOICE: {
|
||||
final String url = getUrlOfType(media);
|
||||
String fileName = media.getId();
|
||||
final User user = media.getUser();
|
||||
if (user != null) {
|
||||
fileName = user.getUsername() + "_" + fileName;
|
||||
if (mediaUser != null) {
|
||||
fileName = mediaUser.getUsername() + "_" + fileName;
|
||||
}
|
||||
final File file = getDownloadSaveFile(downloadDir, fileName, url);
|
||||
map.put(url, file.getAbsolutePath());
|
||||
|
|
|
|||
|
|
@ -943,8 +943,7 @@ public final class ResponseBodyUtils {
|
|||
// }
|
||||
|
||||
public static StoryModel parseStoryItem(final JSONObject data,
|
||||
final boolean isLoc,
|
||||
final boolean isHashtag,
|
||||
final boolean isLocOrHashtag,
|
||||
final String username) throws JSONException {
|
||||
final boolean isVideo = data.has("video_duration");
|
||||
final StoryModel model = new StoryModel(data.getString("id"),
|
||||
|
|
@ -952,9 +951,7 @@ public final class ResponseBodyUtils {
|
|||
.getString("url"), null,
|
||||
isVideo ? MediaItemType.MEDIA_TYPE_VIDEO : MediaItemType.MEDIA_TYPE_IMAGE,
|
||||
data.optLong("taken_at", 0),
|
||||
(isLoc || isHashtag)
|
||||
? data.getJSONObject("user").getString("username")
|
||||
: username,
|
||||
isLocOrHashtag ? data.getJSONObject("user").getString("username") : username,
|
||||
data.getJSONObject("user").getLong("pk"),
|
||||
data.optBoolean("can_reply"));
|
||||
|
||||
|
|
|
|||
|
|
@ -181,6 +181,7 @@ public class DirectThreadViewModel extends AndroidViewModel {
|
|||
MediaUtils.getVoiceInfo(contentResolver, uri, new MediaUtils.OnInfoLoadListener<MediaUtils.VideoInfo>() {
|
||||
@Override
|
||||
public void onLoad(@Nullable final MediaUtils.VideoInfo videoInfo) {
|
||||
if (videoInfo == null) return;
|
||||
threadManager.sendVoice(data,
|
||||
uri,
|
||||
result.getWaveform(),
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ public class StoriesService extends BaseService {
|
|||
}
|
||||
try {
|
||||
final JSONObject itemJson = new JSONObject(body).getJSONArray("items").getJSONObject(0);
|
||||
callback.onSuccess(ResponseBodyUtils.parseStoryItem(itemJson, false, false, null));
|
||||
callback.onSuccess(ResponseBodyUtils.parseStoryItem(itemJson, false, null));
|
||||
} catch (JSONException e) {
|
||||
callback.onFailure(e);
|
||||
}
|
||||
|
|
@ -187,7 +187,7 @@ public class StoriesService extends BaseService {
|
|||
final boolean isBestie = node.optBoolean("has_besties_media", false);
|
||||
StoryModel firstStoryModel = null;
|
||||
if (itemJson != null) {
|
||||
firstStoryModel = ResponseBodyUtils.parseStoryItem(itemJson, false, false, null);
|
||||
firstStoryModel = ResponseBodyUtils.parseStoryItem(itemJson, false, null);
|
||||
}
|
||||
feedStoryModels.add(new FeedStoryModel(id, user, fullyRead, timestamp, firstStoryModel, mediaCount, false, isBestie));
|
||||
}
|
||||
|
|
@ -364,9 +364,8 @@ public class StoriesService extends BaseService {
|
|||
final ServiceCallback<List<StoryModel>> callback) {
|
||||
final String url = buildUrl(options);
|
||||
final Call<String> userStoryCall = repository.getUserStory(url);
|
||||
final boolean isLoc = options.getType() == StoryViewerOptions.Type.LOCATION;
|
||||
final boolean isHashtag = options.getType() == StoryViewerOptions.Type.HASHTAG;
|
||||
final boolean isHighlight = options.getType() == StoryViewerOptions.Type.HIGHLIGHT;
|
||||
final boolean isLocOrHashtag = options.getType() == StoryViewerOptions.Type.LOCATION || options.getType() == StoryViewerOptions.Type.HASHTAG;
|
||||
final boolean isHighlight = options.getType() == StoryViewerOptions.Type.HIGHLIGHT || options.getType() == StoryViewerOptions.Type.STORY_ARCHIVE;
|
||||
userStoryCall.enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull final Call<String> call, @NonNull final Response<String> response) {
|
||||
|
|
@ -380,7 +379,7 @@ public class StoriesService extends BaseService {
|
|||
data = new JSONObject(body);
|
||||
|
||||
if (!isHighlight) {
|
||||
data = data.optJSONObject((isLoc || isHashtag) ? "story" : "reel");
|
||||
data = data.optJSONObject((isLocOrHashtag) ? "story" : "reel");
|
||||
} else {
|
||||
data = data.getJSONObject("reels").optJSONObject(options.getName());
|
||||
}
|
||||
|
|
@ -388,8 +387,7 @@ public class StoriesService extends BaseService {
|
|||
String username = null;
|
||||
if (data != null
|
||||
// && localUsername == null
|
||||
&& !isLoc
|
||||
&& !isHashtag) {
|
||||
&& !isLocOrHashtag) {
|
||||
username = data.getJSONObject("user").getString("username");
|
||||
}
|
||||
|
||||
|
|
@ -397,12 +395,11 @@ public class StoriesService extends BaseService {
|
|||
if (data != null
|
||||
&& (media = data.optJSONArray("items")) != null
|
||||
&& media.length() > 0 && media.optJSONObject(0) != null) {
|
||||
|
||||
final int mediaLen = media.length();
|
||||
final List<StoryModel> models = new ArrayList<>();
|
||||
for (int i = 0; i < mediaLen; ++i) {
|
||||
data = media.getJSONObject(i);
|
||||
models.add(ResponseBodyUtils.parseStoryItem(data, isLoc, isHashtag, username));
|
||||
models.add(ResponseBodyUtils.parseStoryItem(data, isLocOrHashtag, username));
|
||||
}
|
||||
callback.onSuccess(models);
|
||||
} else {
|
||||
|
|
@ -543,6 +540,7 @@ public class StoriesService extends BaseService {
|
|||
id = String.valueOf(options.getId());
|
||||
break;
|
||||
case HIGHLIGHT:
|
||||
case STORY_ARCHIVE:
|
||||
builder.append("feed/reels_media/?user_ids=");
|
||||
id = options.getName();
|
||||
break;
|
||||
|
|
@ -550,15 +548,12 @@ public class StoriesService extends BaseService {
|
|||
break;
|
||||
// case FEED_STORY_POSITION:
|
||||
// break;
|
||||
// case STORY_ARCHIVE:
|
||||
// break;
|
||||
}
|
||||
if (id == null) {
|
||||
return null;
|
||||
}
|
||||
final String userId = id.replace(":", "%3A");
|
||||
builder.append(userId);
|
||||
if (type != StoryViewerOptions.Type.HIGHLIGHT) {
|
||||
builder.append(id);
|
||||
if (type != StoryViewerOptions.Type.HIGHLIGHT && type != StoryViewerOptions.Type.STORY_ARCHIVE) {
|
||||
builder.append("/story/");
|
||||
}
|
||||
return builder.toString();
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@
|
|||
android:hint="@string/message"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingBottom="12dp"
|
||||
android:textColor="@color/white"
|
||||
android:textColor="?dmInputTextColor"
|
||||
android:textColorHint="@color/grey_500"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
|
|
|
|||
|
|
@ -50,8 +50,8 @@
|
|||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/privatePage1"
|
||||
android:layout_width="@dimen/private_page_margins"
|
||||
android:layout_height="@dimen/private_page_margins"
|
||||
android:layout_width="@dimen/private_page_size"
|
||||
android:layout_height="@dimen/private_page_size"
|
||||
app:srcCompat="@drawable/lock" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
|
|
|
|||
|
|
@ -9,8 +9,7 @@
|
|||
android:id="@+id/story_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
app:layout_constraintBottom_toTopOf="@id/storiesList"
|
||||
app:layout_constraintBottom_toTopOf="@id/postActions"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
|
@ -37,93 +36,98 @@
|
|||
android:layout_gravity="center"
|
||||
android:visibility="gone" />
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:id="@+id/postActions"
|
||||
</FrameLayout>
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:id="@+id/postActions"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
app:layout_constraintTop_toBottomOf="@id/story_container"
|
||||
app:layout_constraintBottom_toTopOf="@id/storiesList"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:background="#0000">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/viewStoryPost"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:background="#0000">
|
||||
android:layout_weight="1"
|
||||
android:text="@string/view_story_post"
|
||||
android:textColor="@color/btn_green_text_color"
|
||||
android:visibility="gone"
|
||||
app:backgroundTint="@color/btn_green_background" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/viewStoryPost"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/view_story_post"
|
||||
android:textColor="@color/btn_green_text_color"
|
||||
android:visibility="gone"
|
||||
app:backgroundTint="@color/btn_green_background" />
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/poll"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/vote_story_poll"
|
||||
android:textColor="@color/btn_blue_text_color"
|
||||
android:visibility="gone"
|
||||
app:backgroundTint="@color/btn_blue_background" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/poll"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/vote_story_poll"
|
||||
android:textColor="@color/btn_blue_text_color"
|
||||
android:visibility="gone"
|
||||
app:backgroundTint="@color/btn_blue_background" />
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/answer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/respond_story"
|
||||
android:textColor="@color/btn_blue_text_color"
|
||||
android:visibility="gone"
|
||||
app:backgroundTint="@color/btn_blue_background" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/answer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/respond_story"
|
||||
android:textColor="@color/btn_blue_text_color"
|
||||
android:visibility="gone"
|
||||
app:backgroundTint="@color/btn_blue_background" />
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/quiz"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/story_quiz"
|
||||
android:textColor="@color/btn_blue_text_color"
|
||||
android:visibility="gone"
|
||||
app:backgroundTint="@color/btn_blue_background" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/quiz"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/story_quiz"
|
||||
android:textColor="@color/btn_blue_text_color"
|
||||
android:visibility="gone"
|
||||
app:backgroundTint="@color/btn_blue_background" />
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/slider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/story_slider"
|
||||
android:textColor="@color/btn_blue_text_color"
|
||||
android:visibility="gone"
|
||||
app:backgroundTint="@color/btn_blue_background" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/slider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/story_slider"
|
||||
android:textColor="@color/btn_blue_text_color"
|
||||
android:visibility="gone"
|
||||
app:backgroundTint="@color/btn_blue_background" />
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/swipeUp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="SAMPLE TEXT"
|
||||
android:textColor="@color/btn_blue_text_color"
|
||||
android:visibility="gone"
|
||||
app:backgroundTint="@color/btn_blue_background" />
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/mention"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/story_mentions"
|
||||
android:textColor="@color/btn_orange_text_color"
|
||||
android:visibility="gone"
|
||||
app:backgroundTint="@color/btn_orange_background" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/swipeUp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="SAMPLE TEXT"
|
||||
android:textColor="@color/btn_blue_text_color"
|
||||
android:visibility="gone"
|
||||
app:backgroundTint="@color/btn_blue_background" />
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/mention"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/story_mentions"
|
||||
android:textColor="@color/btn_orange_text_color"
|
||||
android:visibility="gone"
|
||||
app:backgroundTint="@color/btn_orange_background" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/spotify"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/spotify"
|
||||
android:textColor="@color/btn_green_text_color"
|
||||
android:visibility="gone"
|
||||
app:backgroundTint="@color/btn_green_background" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
</FrameLayout>
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/spotify"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/spotify"
|
||||
android:textColor="@color/btn_green_text_color"
|
||||
android:visibility="gone"
|
||||
app:backgroundTint="@color/btn_green_background" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/btnBackward"
|
||||
|
|
@ -144,7 +148,7 @@
|
|||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:clipToPadding="false"
|
||||
app:layout_constraintTop_toBottomOf="@id/story_container"
|
||||
app:layout_constraintTop_toBottomOf="@id/postActions"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/btnForward"
|
||||
app:layout_constraintStart_toEndOf="@id/btnBackward" />
|
||||
|
|
|
|||
|
|
@ -113,6 +113,7 @@
|
|||
android:paddingEnd="@dimen/dm_message_card_radius"
|
||||
android:paddingBottom="4dp"
|
||||
android:singleLine="true"
|
||||
android:textColor="@color/white"
|
||||
app:layout_constraintBottom_toTopOf="@id/chat_message_layout"
|
||||
app:layout_constraintEnd_toEndOf="@id/chat_message_layout"
|
||||
app:layout_constraintHorizontal_bias="0"
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
android:paddingEnd="@dimen/dm_message_card_radius"
|
||||
android:paddingBottom="@dimen/dm_message_card_radius_small"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
||||
android:textColor="@color/white"
|
||||
tools:text="Some message" />
|
||||
|
||||
<com.facebook.drawee.view.SimpleDraweeView
|
||||
|
|
@ -35,6 +36,7 @@
|
|||
android:paddingTop="@dimen/dm_message_card_radius_small"
|
||||
android:paddingEnd="@dimen/dm_message_card_radius"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
android:textColor="@color/white"
|
||||
tools:text="Title of the website" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
|
|
@ -46,6 +48,7 @@
|
|||
android:paddingStart="@dimen/dm_message_card_radius"
|
||||
android:paddingTop="@dimen/dm_message_card_radius_small"
|
||||
android:paddingEnd="@dimen/dm_message_card_radius"
|
||||
android:textColor="@color/white"
|
||||
tools:text="Some summary of the website" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
|
|
@ -59,5 +62,6 @@
|
|||
android:paddingEnd="@dimen/dm_message_card_radius"
|
||||
android:paddingBottom="@dimen/dm_message_card_radius_small"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Caption"
|
||||
android:textColor="@color/white"
|
||||
tools:text="test.com" />
|
||||
</LinearLayout>
|
||||
|
|
@ -86,6 +86,7 @@
|
|||
android:paddingEnd="8dp"
|
||||
android:paddingBottom="0dp"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
android:textColor="@color/white"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toTopOf="@id/caption"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
|
@ -101,6 +102,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:padding="8dp"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
android:textColor="@color/white"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
android:ellipsize="end"
|
||||
android:gravity="bottom"
|
||||
android:singleLine="true"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constrainedWidth="true"
|
||||
|
|
@ -62,12 +62,14 @@
|
|||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
android:textColor="@color/white"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toTopOf="@id/barrier"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/username"
|
||||
app:layout_constraintTop_toBottomOf="@id/username"
|
||||
tools:text="Full name" />
|
||||
tools:text="Full name"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<androidx.constraintlayout.widget.Barrier
|
||||
android:id="@+id/barrier"
|
||||
|
|
|
|||
|
|
@ -78,6 +78,7 @@
|
|||
android:layout_marginEnd="4dp"
|
||||
android:padding="8dp"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
android:textColor="@color/white"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/preview"
|
||||
|
|
|
|||
|
|
@ -41,5 +41,6 @@
|
|||
android:layout_gravity="start|fill_horizontal"
|
||||
android:padding="8dp"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
android:textColor="@color/white"
|
||||
tools:text="Some text " />
|
||||
</LinearLayout>
|
||||
|
|
@ -9,4 +9,5 @@
|
|||
android:paddingEnd="@dimen/dm_message_card_radius"
|
||||
android:paddingBottom="@dimen/dm_message_card_radius_small"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
||||
android:textColor="@color/white"
|
||||
tools:text="Text message" />
|
||||
|
|
@ -66,10 +66,12 @@
|
|||
android:layout_height="54dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
app:waveformBackgroundColor="?dmWaveformBgColor"
|
||||
app:layout_constraintBottom_toTopOf="@id/duration"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/play_wrapper"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:waveformProgressColor="?dmWaveformProgressColor" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/duration"
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
app:chipIconTint="@color/deep_purple_200"
|
||||
app:layout_constraintBottom_toTopOf="@id/fav_chip"
|
||||
app:layout_constraintStart_toEndOf="@id/mainProfileImage"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:rippleColor="@color/purple_200"
|
||||
tools:visibility="visible" />
|
||||
|
||||
|
|
@ -50,6 +51,7 @@
|
|||
app:chipBackgroundColor="@null"
|
||||
app:layout_constraintBottom_toTopOf="@id/fav_chip"
|
||||
app:layout_constraintStart_toEndOf="@id/btnFollow"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="omg what do u expect"
|
||||
tools:visibility="visible" />
|
||||
|
||||
|
|
@ -66,6 +68,7 @@
|
|||
app:chipIconTint="@color/blue_700"
|
||||
app:layout_constraintBottom_toTopOf="@id/fav_chip"
|
||||
app:layout_constraintStart_toEndOf="@id/mainStatus"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:rippleColor="@color/blue_A400"
|
||||
tools:visibility="visible" />
|
||||
|
||||
|
|
@ -81,6 +84,7 @@
|
|||
app:chipIconTint="@color/red_600"
|
||||
app:layout_constraintBottom_toTopOf="@id/fav_chip"
|
||||
app:layout_constraintStart_toEndOf="@id/btnSaved"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:rippleColor="@color/red_300"
|
||||
tools:visibility="visible" />
|
||||
|
||||
|
|
@ -109,6 +113,7 @@
|
|||
app:chipBackgroundColor="@null"
|
||||
app:chipIcon="@drawable/ic_outline_person_pin_24"
|
||||
app:chipIconTint="@color/deep_orange_800"
|
||||
app:layout_constraintBottom_toTopOf="@+id/mainFullName"
|
||||
app:layout_constraintStart_toEndOf="@id/mainProfileImage"
|
||||
app:layout_constraintTop_toBottomOf="@id/fav_chip"
|
||||
app:rippleColor="@color/deep_orange_400"
|
||||
|
|
@ -124,6 +129,7 @@
|
|||
app:chipBackgroundColor="@null"
|
||||
app:chipIcon="@drawable/ic_round_send_24"
|
||||
app:chipIconTint="@color/green"
|
||||
app:layout_constraintBottom_toTopOf="@+id/mainFullName"
|
||||
app:layout_constraintStart_toEndOf="@id/btnTagged"
|
||||
app:layout_constraintTop_toBottomOf="@id/fav_chip"
|
||||
app:rippleColor="@color/green"
|
||||
|
|
@ -161,6 +167,23 @@
|
|||
app:srcCompat="@drawable/verified"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/isPrivate"
|
||||
android:layout_width="25dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"
|
||||
android:adjustViewBounds="true"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:tint="@color/red_500"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="@id/mainFullName"
|
||||
app:layout_constraintStart_toEndOf="@id/isVerified"
|
||||
app:layout_constraintTop_toBottomOf="@id/btnTagged"
|
||||
app:srcCompat="@drawable/lock"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/fav_cb"
|
||||
android:layout_width="wrap_content"
|
||||
|
|
|
|||
|
|
@ -16,6 +16,9 @@
|
|||
<attr name="dmIncomingBgColor" format="reference" />
|
||||
<attr name="dmOutgoingBgColor" format="reference" />
|
||||
<attr name="dmDateHeaderBgColor" format="reference" />
|
||||
<attr name="dmWaveformBgColor" format="reference" />
|
||||
<attr name="dmWaveformProgressColor" format="reference" />
|
||||
<attr name="dmInputTextColor" format="reference" />
|
||||
|
||||
<declare-styleable name="RecordView">
|
||||
<attr name="slide_to_cancel_text" format="string" />
|
||||
|
|
@ -26,4 +29,9 @@
|
|||
<attr name="slide_to_cancel_arrow_color" format="reference" />
|
||||
<attr name="counter_time_color" format="reference" />
|
||||
</declare-styleable>
|
||||
|
||||
<declare-styleable name="WaveformSeekBar">
|
||||
<attr name="waveformBackgroundColor" format="reference" />
|
||||
<attr name="waveformProgressColor" format="reference" />
|
||||
</declare-styleable>
|
||||
</resources>
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="profile_info_container_bottom_space">8dp</dimen>
|
||||
<dimen name="private_page_margins">@dimen/profile_picture_size</dimen>
|
||||
<dimen name="private_page_margins">30dp</dimen>
|
||||
<dimen name="private_page_size">90dp</dimen>
|
||||
|
||||
<dimen name="profile_picture_size">90dp</dimen>
|
||||
<dimen name="profile_chip_size">40dp</dimen>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,9 @@
|
|||
<item name="actionBarTheme">@style/ThemeOverlay.MaterialComponents.ActionBar</item>
|
||||
<!--<item name="toolbarStyle">@style/Widget.MaterialComponents.Toolbar.Primary</item>-->
|
||||
<item name="materialAlertDialogTheme">@style/ThemeOverlay.MaterialComponents.MaterialAlertDialog.Light</item>
|
||||
<item name="dmIncomingBgColor">@color/grey_600</item>
|
||||
<item name="dmOutgoingBgColor">@color/deep_purple_400</item>
|
||||
<item name="dmDateHeaderBgColor">@color/deep_purple_600</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.Light.White" parent="AppTheme.Light">
|
||||
|
|
@ -39,6 +42,12 @@
|
|||
<item name="bottomNavigationStyle">@style/Widget.BottomNavigationView.Light.White</item>
|
||||
<item name="materialButtonStyle">@style/Widget.MaterialComponents.Button.Light.White</item>
|
||||
<item name="textInputStyle">@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Light.White</item>
|
||||
<item name="dmIncomingBgColor">@color/grey_600</item>
|
||||
<item name="dmOutgoingBgColor">@color/deep_purple_400</item>
|
||||
<item name="dmDateHeaderBgColor">@color/deep_purple_600</item>
|
||||
<item name="dmWaveformBgColor">@color/grey_600</item>
|
||||
<item name="dmWaveformProgressColor">@color/blue_800</item>
|
||||
<item name="dmInputTextColor">@color/black</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.Light.Barinsta" parent="AppTheme.Light">
|
||||
|
|
@ -89,6 +98,9 @@
|
|||
<item name="android:windowLightNavigationBar" tools:ignore="NewApi">false</item>
|
||||
<item name="actionBarTheme">@style/ThemeOverlay.MaterialComponents.Dark.ActionBar</item>
|
||||
<!--<item name="toolbarStyle">@style/Widget.MaterialComponents.Toolbar.Primary</item>-->
|
||||
<item name="dmWaveformBgColor">@color/white</item>
|
||||
<item name="dmWaveformProgressColor">@color/blue_800</item>
|
||||
<item name="dmInputTextColor">@color/white</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.Dark.Black" parent="AppTheme.Dark">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue