Merge branch 'even-even-more-ui-fixes' into 'master'
More misc UI fixes for 0.103 Closes #949, #937, and #927 See merge request !477
This commit is contained in:
		
						commit
						77e3d6a6f1
					
				| @ -33,7 +33,7 @@ dependencies { | ||||
|     compile "com.android.support:cardview-v7:${supportLibVersion}" | ||||
|     compile "com.android.support:design:${supportLibVersion}" | ||||
|     compile "com.android.support:support-vector-drawable:${supportLibVersion}" | ||||
|     compile 'com.android.support.constraint:constraint-layout:1.0.1' | ||||
|     compile 'com.android.support.constraint:constraint-layout:1.0.2' | ||||
|     compile "com.android.support:palette-v7:${supportLibVersion}" | ||||
| 
 | ||||
|     compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' | ||||
| @ -112,8 +112,8 @@ if (!hasProperty('sourceDeps')) { | ||||
|                 'ch.acra:acra:d2762968c448757a7d6acc9f141881d9632f664988e9723ece33b5f7c79f3bc9', | ||||
|                 'commons-io:commons-io:a10418348d234968600ccb1d988efcbbd08716e1d96936ccc1880e7d22513474', | ||||
|                 'commons-net:commons-net:c25b0da668b3c5649f002d504def22d1b4cb30d206f05428d2fe168fa1a901c2', | ||||
|                 'com.android.support.constraint:constraint-layout-solver:d03a406eb505dfa673b0087bf17e16d5a4d6bf8afdf452ee175e346207948cdf', | ||||
|                 'com.android.support.constraint:constraint-layout:df1add69d11063eebba521818d63537b22207376b65f30cc35feea172b84e300', | ||||
|                 'com.android.support.constraint:constraint-layout-solver:8c62525a9bc5cff5633a96cb9b32fffeccaf41b8841aa87fc22607070dea9b8d', | ||||
|                 'com.android.support.constraint:constraint-layout:b0c688cc2b7172608f8153a689d746da40f71e52d7e2fe2bfd9df2f92db77085', | ||||
|                 'com.android.support:animated-vector-drawable:d2d59a11809abe3e64535346f05c22437b458de115f06ea35021fd0714960213', | ||||
|                 'com.android.support:appcompat-v7:120f3ce6cac682d69e53d80ccfa9cee076f0f11ccbe56d4ccd72099a745e81f9', | ||||
|                 'com.android.support:cardview-v7:c8610b0c334e4438d7e1ac58fcf2ac891fb26bac662c8351cd6b345c8d7b7076', | ||||
|  | ||||
| @ -469,9 +469,20 @@ public class AppDetails2 extends AppCompatActivity implements ShareChooserDialog | ||||
|                 case Installer.ACTION_INSTALL_COMPLETE: | ||||
|                     adapter.clearProgress(); | ||||
|                     unregisterInstallReceiver(); | ||||
|                     // Don't try and update the view here, because the InstalledAppProviderService | ||||
|                     // Ideally, we wouldn't try to update the view here, because the InstalledAppProviderService | ||||
|                     // hasn't had time to do its thing and mark the app as installed. Instead, we | ||||
|                     // wait for that service to notify us, and then we will respond in appObserver. | ||||
| 
 | ||||
|                     // Having said that, there are some cases where the PackageManager doesn't | ||||
|                     // return control back to us until after it has already braodcast to the | ||||
|                     // InstalledAppProviderService. This means that we are not listening for any | ||||
|                     // feedback from InstalledAppProviderService (we intentionally stop listening in | ||||
|                     // onPause). Empirically, this happens when upgrading an app rather than a clean | ||||
|                     // install. However given the nature of this race condition, it may be different | ||||
|                     // on different operating systems. As such, we'll just update our view now. It may | ||||
|                     // happen again in our appObserver, but that will only cause a little more load | ||||
|                     // on the system, it shouldn't cause a different UX. | ||||
|                     onAppChanged(); | ||||
|                     break; | ||||
|                 case Installer.ACTION_INSTALL_INTERRUPTED: | ||||
|                     adapter.clearProgress(); | ||||
|  | ||||
| @ -10,6 +10,7 @@ import android.content.pm.Signature; | ||||
| import android.net.Uri; | ||||
| import android.os.Process; | ||||
| import android.support.annotation.Nullable; | ||||
| import android.util.Log; | ||||
| 
 | ||||
| import org.acra.ACRA; | ||||
| import org.fdroid.fdroid.Hasher; | ||||
| @ -173,6 +174,7 @@ public class InstalledAppProviderService extends IntentService { | ||||
|         if (ACTION_INSERT.equals(action)) { | ||||
|             PackageInfo packageInfo = getPackageInfo(intent, packageName); | ||||
|             if (packageInfo != null) { | ||||
|                 Log.i(TAG, "Marking " + packageName + " as installed"); | ||||
|                 File apk = new File(packageInfo.applicationInfo.publicSourceDir); | ||||
|                 if (apk.isDirectory()) { | ||||
|                     FilenameFilter filter = new FilenameFilter() { | ||||
| @ -204,6 +206,7 @@ public class InstalledAppProviderService extends IntentService { | ||||
|                 } | ||||
|             } | ||||
|         } else if (ACTION_DELETE.equals(action)) { | ||||
|             Log.i(TAG, "Marking " + packageName + " as no longer installed"); | ||||
|             deleteAppFromDb(this, packageName); | ||||
|         } | ||||
|         notifyEvents.onNext(null); | ||||
|  | ||||
| @ -81,6 +81,7 @@ public class CategoryController extends RecyclerView.ViewHolder implements Loade | ||||
|         int categoryNameId = getCategoryResource(activity, categoryName, "string", false); | ||||
|         String translatedName = categoryNameId == 0 ? categoryName : activity.getString(categoryNameId); | ||||
|         heading.setText(translatedName); | ||||
|         heading.setContentDescription(activity.getString(R.string.tts_category_name, translatedName)); | ||||
| 
 | ||||
|         viewAll.setVisibility(View.INVISIBLE); | ||||
| 
 | ||||
|  | ||||
| @ -6,12 +6,14 @@ import android.content.Context; | ||||
| import android.content.Intent; | ||||
| import android.content.IntentFilter; | ||||
| import android.net.Uri; | ||||
| import android.os.Build; | ||||
| import android.os.Bundle; | ||||
| import android.support.annotation.Nullable; | ||||
| import android.support.v4.content.LocalBroadcastManager; | ||||
| import android.support.v7.app.AppCompatActivity; | ||||
| import android.support.v7.widget.LinearLayoutManager; | ||||
| import android.text.TextUtils; | ||||
| import android.view.ViewGroup; | ||||
| import android.widget.Toast; | ||||
| import android.support.v7.widget.RecyclerView; | ||||
| 
 | ||||
| @ -81,6 +83,13 @@ public class MainActivity extends AppCompatActivity implements BottomNavigationB | ||||
|         pager.setLayoutManager(new NonScrollingHorizontalLayoutManager(this)); | ||||
|         pager.setAdapter(adapter); | ||||
| 
 | ||||
|         // Without this, the focus is completely busted on pre 15 devices. Trying to use them | ||||
|         // without this ends up with each child view showing for a fraction of a second, then | ||||
|         // reverting back to the "Latest" screen again, in completely non-deterministic ways. | ||||
|         if (Build.VERSION.SDK_INT <= 15) { | ||||
|             pager.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS); | ||||
|         } | ||||
| 
 | ||||
|         updatesBadge = new BadgeItem().hide(false); | ||||
| 
 | ||||
|         bottomNavigation = (BottomNavigationBar) findViewById(R.id.bottom_navigation); | ||||
|  | ||||
| @ -21,7 +21,9 @@ | ||||
|             android:layout_height="wrap_content" | ||||
|             android:layout_marginTop="8dp" | ||||
|             android:layout_marginStart="8dp" | ||||
|             android:layout_marginLeft="8dp" | ||||
|             android:layout_marginEnd="8dp" | ||||
|             android:layout_marginRight="8dp" | ||||
|             > | ||||
| 
 | ||||
|             <ImageView | ||||
| @ -125,10 +127,11 @@ | ||||
|                 android:layout_width="match_parent" | ||||
|                 android:layout_height="wrap_content" | ||||
|                 android:layout_below="@id/icon" | ||||
|                 android:layout_toEndOf="@id/icon" | ||||
|                 android:layout_toRightOf="@id/icon" | ||||
|                 android:layout_alignParentStart="true" | ||||
|                 android:layout_alignParentLeft="true" | ||||
|                 android:layout_alignParentEnd="true" | ||||
|                 android:layout_alignParentRight="true" | ||||
|                 android:paddingBottom="2dp" | ||||
|                 android:clipToPadding="false" | ||||
|                 android:visibility="gone" | ||||
|                 > | ||||
| @ -141,7 +144,7 @@ | ||||
|                     android:layout_weight="1" | ||||
|                     android:ellipsize="marquee" | ||||
|                     android:padding="12dp" | ||||
|                     tools:text="THIS IS BUTTON 1" /> | ||||
|                     tools:text="Uninstall" /> | ||||
| 
 | ||||
|                 <Button | ||||
|                     android:id="@+id/primaryButtonView" | ||||
| @ -152,7 +155,7 @@ | ||||
|                     android:layout_marginStart="8dp" | ||||
|                     android:layout_weight="1" | ||||
|                     android:ellipsize="marquee" | ||||
|                     tools:text="THIS IS 2" /> | ||||
|                     tools:text="Run" /> | ||||
|             </LinearLayout> | ||||
| 
 | ||||
|         </RelativeLayout> | ||||
| @ -163,7 +166,9 @@ | ||||
|             android:layout_height="wrap_content" | ||||
|             android:textAppearance="@style/TextAppearance.AppCompat.Body1" | ||||
|             android:paddingStart="8dp" | ||||
|             android:paddingLeft="8dp" | ||||
|             android:paddingEnd="8dp" | ||||
|             android:paddingRight="8dp" | ||||
|             android:paddingTop="16dp" | ||||
|             android:paddingBottom="16dp" | ||||
|             android:layout_marginTop="16dp" | ||||
| @ -175,7 +180,9 @@ | ||||
|         <TextView | ||||
|             android:id="@+id/description" | ||||
|             android:layout_marginStart="8dp" | ||||
|             android:layout_marginLeft="8dp" | ||||
|             android:layout_marginEnd="8dp" | ||||
|             android:layout_marginRight="8dp" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:layout_marginTop="16dp" | ||||
| @ -189,7 +196,9 @@ | ||||
|             android:layout_height="wrap_content" | ||||
|             android:layout_marginTop="16dp" | ||||
|             android:layout_marginStart="8dp" | ||||
|             android:layout_marginLeft="8dp" | ||||
|             android:layout_marginEnd="8dp" | ||||
|             android:layout_marginRight="8dp" | ||||
|             android:scrollbars="none" | ||||
|             android:textStyle="bold" | ||||
|             android:textAllCaps="true" | ||||
| @ -202,7 +211,9 @@ | ||||
|             android:layout_height="wrap_content" | ||||
|             android:layout_marginTop="16dp" | ||||
|             android:layout_marginStart="8dp" | ||||
|             android:layout_marginLeft="8dp" | ||||
|             android:layout_marginEnd="8dp" | ||||
|             android:layout_marginRight="8dp" | ||||
|             android:scrollbars="none" | ||||
|             android:textAppearance="@style/TextAppearance.AppCompat.Body1" | ||||
|             tools:text="\t• This app tracks and reports your activity." /> | ||||
| @ -213,8 +224,10 @@ | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:layout_marginStart="8dp" | ||||
|             android:layout_marginLeft="8dp" | ||||
|             android:layout_marginEnd="8dp" | ||||
|             android:gravity="right|end" | ||||
|             android:layout_marginRight="8dp" | ||||
|             android:gravity="end" | ||||
|             android:text="@string/more" | ||||
|             android:textAppearance="@style/TextAppearance.AppCompat.Body1" | ||||
|             tools:text="more" /> | ||||
| @ -225,7 +238,9 @@ | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:layout_marginStart="8dp" | ||||
|             android:layout_marginLeft="8dp" | ||||
|             android:layout_marginEnd="8dp" | ||||
|             android:layout_marginRight="8dp" | ||||
|             android:textAppearance="@style/TextAppearance.AppCompat.Body1" | ||||
|             android:drawableStart="@drawable/ic_warning_black_24dp" | ||||
|             android:drawableLeft="@drawable/ic_warning_black_24dp" | ||||
|  | ||||
| @ -19,7 +19,9 @@ | ||||
|         android:paddingStart="18dp" | ||||
|         android:paddingRight="18dp" | ||||
|         android:paddingEnd="18dp" | ||||
|         tools:layout_editor_absoluteX="0dp" /> | ||||
|         tools:layout_editor_absoluteX="0dp" | ||||
|         android:focusable="true" | ||||
|         android:focusableInTouchMode="true" /> | ||||
| 
 | ||||
|     <Button | ||||
|         android:id="@+id/button" | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Hans-Christoph Steiner
						Hans-Christoph Steiner