Skip to content

Commit dff13af

Browse files
committed
Build 29 - Quick Search, Friend Requests and simplified layout filenames
1 parent 2637024 commit dff13af

104 files changed

Lines changed: 689 additions & 157 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app/build.gradle

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ android {
1010
applicationId "uk.openvk.android.refresh"
1111
minSdk 21
1212
targetSdk 33
13-
versionCode 28
14-
versionName "0.9.28.alpha"
13+
versionCode 29
14+
versionName "0.9.29.alpha"
1515
}
1616

1717
buildTypes {
@@ -53,5 +53,8 @@ dependencies {
5353
implementation 'androidx.palette:palette:1.0.0'
5454
implementation 'org.videolan.android:libvlc-all:3.3.13'
5555
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0"
56-
implementation "androidx.emoji2:emoji2:1.2.0"
56+
implementation "androidx.emoji2:emoji2:1.3.0"
57+
//noinspection GradleDependency
58+
implementation 'com.github.mancj:MaterialSearchBar:0.8.5'
59+
implementation 'com.github.luizgrp:SectionedRecyclerViewAdapter:v3.2.0'
5760
}
-33.6 KB
Binary file not shown.

app/src/main/AndroidManifest.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,15 @@
153153
tools:ignore="RedundantLabel">
154154
</activity>
155155

156+
<activity android:name=".ui.core.activities.QuickSearchActivity"
157+
android:exported="true"
158+
android:windowSoftInputMode="adjustResize"
159+
android:label="@string/global_search_hint"
160+
android:configChanges="orientation|screenSize|screenLayout|keyboardHidden|mcc|mnc|uiMode"
161+
android:theme="@style/ApplicationTheme"
162+
tools:ignore="RedundantLabel">
163+
</activity>
164+
156165
<meta-data
157166
android:name="preloaded_fonts"
158167
android:resource="@array/preloaded_fonts" />

app/src/main/java/uk/openvk/android/refresh/api/models/Friend.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ public Friend[] newArray(int size) {
6464
}
6565
};
6666

67+
public Friend() {
68+
69+
}
70+
6771
public void parse(JSONObject user) {
6872
try {
6973
if(user != null) {

app/src/main/java/uk/openvk/android/refresh/api/wrappers/OvkAPIWrapper.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@
3030
import uk.openvk.android.refresh.ui.core.activities.ConversationActivity;
3131
import uk.openvk.android.refresh.ui.core.activities.FriendsIntentActivity;
3232
import uk.openvk.android.refresh.ui.core.activities.GroupIntentActivity;
33+
import uk.openvk.android.refresh.ui.core.activities.MainSettingsActivity;
3334
import uk.openvk.android.refresh.ui.core.activities.NewPostActivity;
3435
import uk.openvk.android.refresh.ui.core.activities.ProfileIntentActivity;
36+
import uk.openvk.android.refresh.ui.core.activities.QuickSearchActivity;
3537
import uk.openvk.android.refresh.ui.core.activities.WallPostActivity;
3638

3739
public class OvkAPIWrapper {
@@ -935,8 +937,8 @@ private void sendMessage(int message, String response) {
935937
((ConversationActivity) ctx).handler.sendMessage(msg);
936938
} else if(ctx.getClass().getSimpleName().equals("NewPostActivity")) {
937939
((NewPostActivity) ctx).handler.sendMessage(msg);
938-
// } else if(ctx.getClass().getSimpleName().equals("QuickSearchActivity")) {
939-
// ((QuickSearchActivity) ctx).handler.sendMessage(msg);
940+
} else if(ctx.getClass().getSimpleName().equals("QuickSearchActivity")) {
941+
((QuickSearchActivity) ctx).handler.sendMessage(msg);
940942
} else if(ctx.getClass().getSimpleName().equals("WallPostActivity")) {
941943
((WallPostActivity) ctx).handler.sendMessage(msg);
942944
}
@@ -959,14 +961,14 @@ private void sendMessage(int message, String method, String response) {
959961
((FriendsIntentActivity) ctx).handler.sendMessage(msg);
960962
} else if(ctx.getClass().getSimpleName().equals("GroupIntentActivity")) {
961963
((GroupIntentActivity) ctx).handler.sendMessage(msg);
962-
// } else if(ctx.getClass().getSimpleName().equals("MainSettingsActivity")) {
963-
// ((MainSettingsActivity) ctx).handler.sendMessage(msg);
964+
} else if(ctx.getClass().getSimpleName().equals("MainSettingsActivity")) {
965+
((MainSettingsActivity) ctx).handler.sendMessage(msg);
964966
} else if(ctx.getClass().getSimpleName().equals("ConversationActivity")) {
965967
((ConversationActivity) ctx).handler.sendMessage(msg);
966968
} else if(ctx.getClass().getSimpleName().equals("NewPostActivity")) {
967969
((NewPostActivity) ctx).handler.sendMessage(msg);
968-
// } else if(ctx.getClass().getSimpleName().equals("QuickSearchActivity")) {
969-
// ((QuickSearchActivity) ctx).handler.sendMessage(msg);
970+
} else if(ctx.getClass().getSimpleName().equals("QuickSearchActivity")) {
971+
((QuickSearchActivity) ctx).handler.sendMessage(msg);
970972
} else if(ctx.getClass().getSimpleName().equals("WallPostActivity")) {
971973
((WallPostActivity) ctx).handler.sendMessage(msg);
972974
}
@@ -990,14 +992,14 @@ private void sendMessage(int message, String method, String args, String respons
990992
((GroupIntentActivity) ctx).handler.sendMessage(msg);
991993
} else if(ctx.getClass().getSimpleName().equals("FriendsIntentActivity")) {
992994
((FriendsIntentActivity) ctx).handler.sendMessage(msg);
993-
// } else if(ctx.getClass().getSimpleName().equals("MainSettingsActivity")) {
994-
// ((MainSettingsActivity) ctx).handler.sendMessage(msg);
995+
} else if(ctx.getClass().getSimpleName().equals("MainSettingsActivity")) {
996+
((MainSettingsActivity) ctx).handler.sendMessage(msg);
995997
} else if(ctx.getClass().getSimpleName().equals("ConversationActivity")) {
996998
((ConversationActivity) ctx).handler.sendMessage(msg);
997999
} else if(ctx.getClass().getSimpleName().equals("NewPostActivity")) {
9981000
((NewPostActivity) ctx).handler.sendMessage(msg);
999-
// } else if(ctx.getClass().getSimpleName().equals("QuickSearchActivity")) {
1000-
// ((QuickSearchActivity) ctx).handler.sendMessage(msg);
1001+
} else if(ctx.getClass().getSimpleName().equals("QuickSearchActivity")) {
1002+
((QuickSearchActivity) ctx).handler.sendMessage(msg);
10011003
} else if(ctx.getClass().getSimpleName().equals("WallPostActivity")) {
10021004
((WallPostActivity) ctx).handler.sendMessage(msg);
10031005
}

app/src/main/java/uk/openvk/android/refresh/ui/core/activities/AppActivity.java

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import android.annotation.SuppressLint;
44
import android.app.AlarmManager;
55
import android.app.Notification;
6-
import android.app.NotificationChannel;
76
import android.app.PendingIntent;
87
import android.content.ComponentName;
98
import android.content.Context;
@@ -34,7 +33,7 @@
3433
import androidx.appcompat.app.ActionBarDrawerToggle;
3534
import androidx.appcompat.app.AppCompatDelegate;
3635
import androidx.appcompat.widget.AppCompatSpinner;
37-
import androidx.core.app.NotificationCompat;
36+
import androidx.constraintlayout.widget.ConstraintLayout;
3837
import androidx.drawerlayout.widget.DrawerLayout;
3938
import androidx.fragment.app.Fragment;
4039
import androidx.fragment.app.FragmentManager;
@@ -165,7 +164,7 @@ protected void onCreate(Bundle savedInstanceState) {
165164
} else {
166165
current_fragment = savedInstanceState.getString("current_fragment");
167166
}
168-
setContentView(R.layout.app);
167+
setContentView(R.layout.activity_app);
169168
instance_prefs = getSharedPreferences("instance", 0);
170169
createFragments();
171170
}
@@ -364,11 +363,17 @@ public boolean onMenuItemClick(@NonNull MenuItem item) {
364363
}
365364
});
366365
}
366+
ConstraintLayout header = (ConstraintLayout) navView.getHeaderView(0);
367+
header.findViewById(R.id.search_btn).setOnClickListener(new View.OnClickListener() {
368+
@Override
369+
public void onClick(View v) {
370+
startQuickSearchActivity();
371+
}
372+
});
367373
if(account == null || account.user == null) {
368374
String profile_name = getResources().getString(R.string.loading);
369-
((TextView) ((NavigationView) findViewById(R.id.nav_view)).getHeaderView(0).findViewById(R.id.profile_name)).setText(profile_name);
370-
((TextView) ((NavigationView) findViewById(R.id.nav_view)).getHeaderView(0).findViewById(R.id.screen_name))
371-
.setVisibility(View.GONE);
375+
((TextView) header.findViewById(R.id.profile_name)).setText(profile_name);
376+
header.findViewById(R.id.screen_name).setVisibility(View.GONE);
372377
}
373378
@SuppressLint("CutPasteId") ShapeableImageView avatar = ((ShapeableImageView) ((NavigationView) findViewById(R.id.nav_view)).getHeaderView(0).findViewById(R.id.profile_avatar));
374379
Global.setAvatarShape(this, avatar);
@@ -380,6 +385,15 @@ public void onClick(View v) {
380385
});
381386
}
382387

388+
private void startQuickSearchActivity() {
389+
Intent intent = new Intent(getApplicationContext(), QuickSearchActivity.class);
390+
try {
391+
startActivity(intent);
392+
} catch (Exception ex) {
393+
ex.printStackTrace();
394+
}
395+
}
396+
383397
/*
384398
Setting Monet color scheme on unsupported views (in particular Material Design 2)
385399
using MonetCompat library:
@@ -500,9 +514,6 @@ public void switchNavItem(MenuItem item) {
500514
if (friendsFragment.getFriendsCount() == 0) {
501515
friends.get(ovk_api, account.id, 25, "friends_list");
502516
}
503-
if(friendsFragment.getRequestsCount() == 0 && user.id == account.id) {
504-
friends.getRequests(ovk_api);
505-
}
506517
b_navView.getMenu().getItem(1).setChecked(true);
507518
navView.getMenu().getItem(2).setChecked(true);
508519
findViewById(R.id.fab_newpost).setVisibility(View.GONE);
@@ -724,6 +735,7 @@ private void receiveState(int message, Bundle data) {
724735
friendsFragment.createFriendsAdapter(this, friendsList);
725736
friendsFragment.disableUpdateState();
726737
friendsFragment.setScrollingPositions(this, friends.getFriends().size() > 0);
738+
friends.getRequests(ovk_api);
727739
} else if (message == HandlerMessages.FRIENDS_GET_MORE) {
728740
int old_friends_size = friends.getFriends().size();
729741
friends.parse(data.getString("response"), downloadManager, true, false);
@@ -732,10 +744,13 @@ private void receiveState(int message, Bundle data) {
732744
friendsFragment.setScrollingPositions(this, old_friends_size != friends.getFriends().size());
733745
} else if (message == HandlerMessages.FRIENDS_REQUESTS) {
734746
int old_friends_size = friends.getFriends().size();
735-
friends.parse(data.getString("response"), downloadManager, true, false);
736-
ArrayList<Friend> friendsList = friends.getFriends();
747+
friends.parseRequests(data.getString("response"), downloadManager, true);
748+
ArrayList<Friend> friendsList = friends.requests;
737749
friendsFragment.createRequestsAdapter(this, friendsList);
738750
friendsFragment.setScrollingPositions(this, old_friends_size != friends.getFriends().size());
751+
} else if (message == HandlerMessages.FRIENDS_ADD) {
752+
friends.requests.remove(friendsFragment.requests_cursor_index);
753+
friendsFragment.createRequestsAdapter(this, friends.requests);
739754
} else if (message == HandlerMessages.GROUPS_GET) {
740755
groups.parse(data.getString("response"), downloadManager, global_prefs.getString("photos_quality", ""), true, true);
741756
ArrayList<Group> groupsList = groups.getList();
@@ -1028,12 +1043,17 @@ public void openProfileFromWall(int position) {
10281043
}
10291044
}
10301045

1031-
public void openProfileFromFriends(int position) {
1032-
Friend friend = friends.getFriends().get(position);
1046+
public void openProfileFromFriends(int position, boolean isRequest) {
1047+
Intent i = new Intent(Intent.ACTION_VIEW);
10331048
String url = "";
1049+
Friend friend;
1050+
if(isRequest) {
1051+
friend = friends.requests.get(position);
1052+
} else {
1053+
friend = friends.getFriends().get(position);
1054+
}
10341055
url = String.format("openvk://profile/id%s", friend.id);
10351056
if(url.length() > 0) {
1036-
Intent i = new Intent(Intent.ACTION_VIEW);
10371057
i.setData(Uri.parse(url));
10381058
final PackageManager pm = getPackageManager();
10391059
@SuppressLint("QueryPermissionsNeeded") List<ResolveInfo> activityList = pm.queryIntentActivities(i, 0);
@@ -1137,4 +1157,10 @@ public void loadMoreNews() {
11371157
}
11381158
}
11391159
}
1160+
1161+
public void addToFriends(int user_id) {
1162+
if(user_id != account.id) {
1163+
friends.add(ovk_api, user_id);
1164+
}
1165+
}
11401166
}

app/src/main/java/uk/openvk/android/refresh/ui/core/activities/AuthActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ public void onClick(View view) {
346346
snackActionBtn.setLetterSpacing(0);
347347
snackbar.show();
348348
} else if(message == UiMessages.SHOW_WARNING_DIALOG) {
349-
View warn_view = getLayoutInflater().inflate(R.layout.warn_message, null, false);
349+
View warn_view = getLayoutInflater().inflate(R.layout.layout_warn_message, null, false);
350350
OvkAlertDialogBuilder builder = new OvkAlertDialogBuilder(this, R.style.ApplicationTheme_AlertDialog);
351351
builder.setTitle(R.string.ovk_warning_title);
352352
builder.setView(warn_view);

app/src/main/java/uk/openvk/android/refresh/ui/core/activities/ConversationActivity.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import android.annotation.SuppressLint;
44
import android.content.Context;
55
import android.content.SharedPreferences;
6-
import android.content.res.ColorStateList;
76
import android.content.res.Configuration;
87
import android.graphics.Color;
98
import android.os.Bundle;
@@ -28,7 +27,6 @@
2827
import com.google.android.material.appbar.MaterialToolbar;
2928
import com.google.android.material.color.MaterialColors;
3029
import com.google.android.material.textfield.TextInputEditText;
31-
import com.google.android.material.textfield.TextInputLayout;
3230
import com.kieronquinn.monetcompat.app.MonetCompatActivity;
3331
import com.kieronquinn.monetcompat.core.MonetCompat;
3432

@@ -88,7 +86,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
8886
conv_title = (String) savedInstanceState.getSerializable("conv_title");
8987
peer_online = savedInstanceState.getInt("online");
9088
}
91-
setContentView(R.layout.conversation);
89+
setContentView(R.layout.activity_conversation);
9290
setMonetTheme();
9391
history = new ArrayList<uk.openvk.android.refresh.api.models.Message>();
9492
setAPIWrapper();

app/src/main/java/uk/openvk/android/refresh/ui/core/activities/FriendsIntentActivity.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public class FriendsIntentActivity extends MonetCompatActivity {
6464
private Friends friends;
6565
private boolean isDarkTheme;
6666
private FriendsFragment friendsFragment;
67-
private int user_id;
67+
private long user_id;
6868
private Users users;
6969

7070
@Override
@@ -86,8 +86,8 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
8686
}
8787
try {
8888
setAPIWrapper();
89-
createFragments();
9089
setAppBar();
90+
createFragment();
9191
setMonetTheme();
9292
} catch (Exception ex) {
9393
ex.printStackTrace();
@@ -129,10 +129,16 @@ public void handleMessage(Message msg) {
129129
account.getProfileInfo(ovk_api);
130130
}
131131

132-
private void createFragments() {
133-
friendsFragment = new FriendsFragment();
134-
setAPIWrapper();
132+
private void createFragment() {
135133
setAppBar();
134+
}
135+
136+
private void applyFragment() {
137+
friendsFragment = new FriendsFragment();
138+
Bundle args = new Bundle();
139+
args.putLong("user_id", user_id);
140+
args.putLong("account_id", account.id);
141+
friendsFragment.setArguments(args);
136142
FragmentManager fm = getSupportFragmentManager();
137143
ft = getSupportFragmentManager().beginTransaction();
138144
ft.add(R.id.fragment_screen, friendsFragment, "friends");
@@ -165,6 +171,7 @@ public void onClick(View view) {
165171
private void receiveState(int message, Bundle data) {
166172
try {
167173
if (message == HandlerMessages.ACCOUNT_PROFILE_INFO) {
174+
account.parse(data.getString("response"), ovk_api);
168175
if (args.startsWith("id")) {
169176
try {
170177
user_id = Integer.parseInt(args.substring(2));
@@ -175,6 +182,7 @@ private void receiveState(int message, Bundle data) {
175182
} else {
176183
users.search(ovk_api, args);
177184
}
185+
applyFragment();
178186
} else if (message == HandlerMessages.FRIENDS_GET) {
179187
friends.parse(data.getString("response"), downloadManager, true, true);
180188
ArrayList<Friend> friendsList = friends.getFriends();

0 commit comments

Comments
 (0)