Skip to content

Commit 7d8e09f

Browse files
Adds more obvious display for limited connection mode (#4094)
* Limited connection is enabled layout is added * Add a layout to indicate limited connection is active * fix string
1 parent e581318 commit 7d8e09f

File tree

5 files changed

+54
-2
lines changed

5 files changed

+54
-2
lines changed

app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java

+12-2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import android.view.View.OnClickListener;
2323
import android.view.ViewGroup;
2424
import android.widget.CheckBox;
25+
import android.widget.LinearLayout;
2526
import android.widget.TextView;
2627
import android.widget.Toast;
2728
import androidx.annotation.NonNull;
@@ -102,6 +103,7 @@ public class ContributionsFragment
102103

103104
@BindView(R.id.card_view_nearby) public NearbyNotificationCardView nearbyNotificationCardView;
104105
@BindView(R.id.campaigns_view) CampaignView campaignView;
106+
@BindView(R.id.limited_connection_enabled_layout) LinearLayout limitedConnectionEnabledLayout;
105107

106108
@Inject ContributionsPresenter contributionsPresenter;
107109

@@ -236,14 +238,22 @@ public void updateLimitedConnectionToggle(Menu menu) {
236238
.getBoolean(CommonsApplication.IS_LIMITED_CONNECTION_MODE_ENABLED, false);
237239

238240
checkable.setChecked(isEnabled);
239-
/*final SwitchCompat switchToggleLimitedConnectionMode = checkable.getActionView()
240-
.findViewById(R.id.switch_toggle_limited_connection_mode);*/
241+
if (isEnabled) {
242+
limitedConnectionEnabledLayout.setVisibility(View.VISIBLE);
243+
} else {
244+
limitedConnectionEnabledLayout.setVisibility(View.GONE);
245+
}
241246
checkable.setIcon((isEnabled) ? R.drawable.ic_baseline_cloud_off_24:R.drawable.ic_baseline_cloud_queue_24);
242247
checkable.setOnMenuItemClickListener(new OnMenuItemClickListener() {
243248
@Override
244249
public boolean onMenuItemClick(MenuItem item) {
245250
((MainActivity) getActivity()).toggleLimitedConnectionMode();
246251
boolean isEnabled = store.getBoolean(CommonsApplication.IS_LIMITED_CONNECTION_MODE_ENABLED, false);
252+
if (isEnabled) {
253+
limitedConnectionEnabledLayout.setVisibility(View.VISIBLE);
254+
} else {
255+
limitedConnectionEnabledLayout.setVisibility(View.GONE);
256+
}
247257
checkable.setIcon((isEnabled) ? R.drawable.ic_baseline_cloud_off_24:R.drawable.ic_baseline_cloud_queue_24);
248258
return false;
249259
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="72dp"
3+
android:height="72dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24"
6+
android:tint="@color/white">
7+
<path
8+
android:fillColor="@android:color/white"
9+
android:pathData="M19.35,10.04C18.67,6.59 15.64,4 12,4c-1.48,0 -2.85,0.43 -4.01,1.17l1.46,1.46C10.21,6.23 11.08,6 12,6c3.04,0 5.5,2.46 5.5,5.5v0.5H19c1.66,0 3,1.34 3,3 0,1.13 -0.64,2.11 -1.56,2.62l1.45,1.45C23.16,18.16 24,16.68 24,15c0,-2.64 -2.05,-4.78 -4.65,-4.96zM3,5.27l2.75,2.74C2.56,8.15 0,10.77 0,14c0,3.31 2.69,6 6,6h11.73l2,2L21,20.73 4.27,4 3,5.27zM7.73,10l8,8H6c-2.21,0 -4,-1.79 -4,-4s1.79,-4 4,-4h1.73z"/>
10+
</vector>

app/src/main/res/layout/fragment_contributions.xml

+28
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,34 @@
1818
android:layout_marginTop="@dimen/miniscule_margin"
1919
android:layout_margin="@dimen/very_tiny_gap"/>
2020

21+
<LinearLayout
22+
android:id="@+id/limited_connection_enabled_layout"
23+
android:layout_width="match_parent"
24+
android:layout_height="wrap_content"
25+
android:layout_margin="@dimen/miniscule_margin"
26+
android:padding="@dimen/standard_gap"
27+
android:orientation="vertical"
28+
android:background="@color/wikimedia_green">
29+
<ImageView
30+
android:layout_width="wrap_content"
31+
android:layout_height="wrap_content"
32+
android:layout_marginBottom="@dimen/small_gap"
33+
app:srcCompat="@drawable/ic_baseline_cloud_off_72"/>
34+
<TextView
35+
android:layout_width="wrap_content"
36+
android:layout_height="wrap_content"
37+
android:textColor="@android:color/white"
38+
android:layout_marginBottom="@dimen/tiny_gap"
39+
android:textSize="@dimen/subheading_text_size"
40+
android:text="@string/limited_connection_is_on"/>
41+
<TextView
42+
android:layout_width="wrap_content"
43+
android:layout_height="wrap_content"
44+
android:textColor="@android:color/white"
45+
android:textSize="@dimen/description_text_size"
46+
android:text="@string/limited_connection_explanation"/>
47+
</LinearLayout>
48+
2149
<FrameLayout
2250
android:id="@+id/root_frame"
2351
android:layout_width="match_parent"

app/src/main/res/values/colors.xml

+2
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,6 @@
7878
<color name="nav_tab_icon_unselected_color">#61000000</color>
7979
<color name="card_light_grey">#EDEDED</color>
8080

81+
<color name="wikimedia_green">#339966</color>
82+
8183
</resources>

app/src/main/res/values/strings.xml

+2
Original file line numberDiff line numberDiff line change
@@ -701,6 +701,8 @@ Upload your first media by tapping on the add button.</string>
701701
<string name="quality_images_info">Quality images are diagrams or photographs that meet certain quality standards (which are mostly technical in nature) and are valuable for Wikimedia projects</string>
702702
<string name="resuming_upload">Resuming upload…</string>
703703
<string name="pausing_upload">Pausing upload…</string>
704+
<string name="limited_connection_explanation">You have enabled limited connection mode. All uploads are paused and will resume once you disable this mode.</string>
705+
<string name="limited_connection_is_on">Limited connection mode is on.</string>
704706

705707
<string name="media_details_tooltip">Please write a short caption that says what your picture shows. In the description, say what makes the picture interesting or typical or rare, and explain the context, visible or not. Use exact terminology as much as you can.</string>
706708
<string name="depicts_tooltip">Please find and select all concepts that this image portrays. Be as specific as you can. If the image portrays multiple items, choose them all within reason. Do not choose generic tags if more specific tags are available.</string>

0 commit comments

Comments
 (0)