mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-21 05:45:13 +00:00
Merge branch 'dejal' into catalyst
This commit is contained in:
commit
aee59c87cf
147 changed files with 1624 additions and 1384 deletions
|
@ -29,7 +29,7 @@ def FreshenHomepage():
|
|||
sub.save()
|
||||
sub.calculate_feed_scores(silent=True)
|
||||
|
||||
@app.task(name='clean_analytics', time_limit=720*10)
|
||||
@app.task(name='clean-analytics', time_limit=720*10)
|
||||
def CleanAnalytics():
|
||||
logging.debug(" ---> Cleaning analytics... %s feed fetches" % (
|
||||
settings.MONGOANALYTICSDB.nbanalytics.feed_fetches.count(),
|
||||
|
|
|
@ -1599,6 +1599,14 @@ class MSharedStory(mongo.DynamicDocument):
|
|||
socialsub.save()
|
||||
|
||||
self.delete()
|
||||
|
||||
def publish_to_subscribers(self):
|
||||
try:
|
||||
r = redis.Redis(connection_pool=settings.REDIS_PUBSUB_POOL)
|
||||
r.publish("social:%s:story" % (self.user_id), '%s,%s' % (self.story_hash, self.shared_date.strftime('%s')))
|
||||
logging.debug(" ***> [%-30s] ~BMPublishing to Redis for real-time." % (Feed.get_by_id(self.story_feed_id).title[:30],))
|
||||
except redis.ConnectionError:
|
||||
logging.debug(" ***> [%-30s] ~BMRedis is unavailable for real-time." % (Feed.get_by_id(self.story_feed_id).title[:30],))
|
||||
|
||||
@classmethod
|
||||
def feed_quota(cls, user_id, story_hash, feed_id=None, days=1, quota=1):
|
||||
|
@ -2763,7 +2771,7 @@ class MSocialServices(mongo.Document):
|
|||
return
|
||||
|
||||
return True
|
||||
|
||||
|
||||
|
||||
class MInteraction(mongo.Document):
|
||||
user_id = mongo.IntField()
|
||||
|
|
|
@ -611,6 +611,7 @@ def mark_story_as_shared(request):
|
|||
}
|
||||
try:
|
||||
shared_story = MSharedStory.objects.create(**story_db)
|
||||
shared_story.publish_to_subscribers()
|
||||
except NotUniqueError:
|
||||
shared_story = MSharedStory.objects.get(story_guid=story_db['story_guid'],
|
||||
user_id=story_db['user_id'])
|
||||
|
@ -667,6 +668,7 @@ def mark_story_as_shared(request):
|
|||
|
||||
EmailFirstShare.apply_async(kwargs=dict(user_id=request.user.pk))
|
||||
|
||||
|
||||
if format == 'html':
|
||||
stories = MSharedStory.attach_users_to_stories(stories, profiles)
|
||||
return render(request, 'social/social_story.xhtml', {
|
||||
|
|
|
@ -126,15 +126,13 @@
|
|||
<activity
|
||||
android:name=".activity.FolderReading"/>
|
||||
|
||||
<activity
|
||||
android:name=".activity.InAppBrowser" />
|
||||
|
||||
<activity
|
||||
android:name=".activity.Premium" />
|
||||
|
||||
<activity
|
||||
android:name=".activity.MuteConfig"
|
||||
android:launchMode="singleTask"/>
|
||||
android:launchMode="singleTask"
|
||||
android:label="@string/mute_sites"/>
|
||||
|
||||
<activity
|
||||
android:name=".activity.SearchForFeeds" android:launchMode="singleTop" >
|
||||
|
|
|
@ -28,3 +28,20 @@ blockquote a, blockquote a span {
|
|||
.NB-story > table {
|
||||
background-color: #1A1A1A !important;
|
||||
}
|
||||
|
||||
ins {
|
||||
background-color: #069000;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
del {
|
||||
background-color: #920000;
|
||||
}
|
||||
.NB-story ins {
|
||||
background-color: #069000;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.NB-story del {
|
||||
background-color: #920000;
|
||||
}
|
|
@ -27,4 +27,21 @@ blockquote a, blockquote a span {
|
|||
|
||||
.NB-story > table {
|
||||
background-color: #4C4C4C !important;
|
||||
}
|
||||
|
||||
ins {
|
||||
background-color: #069000;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
del {
|
||||
background-color: #920000;
|
||||
}
|
||||
.NB-story ins {
|
||||
background-color: #069000;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.NB-story del {
|
||||
background-color: #920000;
|
||||
}
|
|
@ -23,4 +23,21 @@ pre, blockquote {
|
|||
body, html {
|
||||
background-color: #FFF;
|
||||
}
|
||||
}
|
||||
|
||||
ins {
|
||||
background-color: #BEE8BC;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
del {
|
||||
background-color: #f5c3c3
|
||||
}
|
||||
.NB-story ins {
|
||||
background-color: #BEE8BC;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.NB-story del {
|
||||
background-color: #f5c3c3;
|
||||
}
|
|
@ -63,13 +63,4 @@ pre, blockquote {
|
|||
margin: 0.6em;
|
||||
word-wrap: break-word !important;
|
||||
white-space: pre-wrap !important;
|
||||
}
|
||||
|
||||
/* these are the diff blocks produced by NewsBlur */
|
||||
ins {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
del {
|
||||
display: none;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
buildscript {
|
||||
ext.kotlin_version = '1.4.10'
|
||||
ext.kotlin_version = '1.4.20'
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven {
|
||||
|
@ -9,7 +9,7 @@ buildscript {
|
|||
google()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:4.1.0'
|
||||
classpath 'com.android.tools.build:gradle:4.1.1'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
}
|
||||
}
|
||||
|
@ -34,10 +34,13 @@ dependencies {
|
|||
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
|
||||
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
|
||||
implementation 'com.google.code.gson:gson:2.8.6'
|
||||
implementation 'com.android.billingclient:billing:3.0.1'
|
||||
implementation 'com.android.billingclient:billing:3.0.2'
|
||||
implementation 'nl.dionsegijn:konfetti:1.2.2'
|
||||
implementation 'com.github.jinatonic.confetti:confetti:1.1.2'
|
||||
implementation 'com.google.android.play:core:1.8.3'
|
||||
implementation 'com.google.android.play:core:1.9.0'
|
||||
implementation "com.google.android.material:material:1.2.1"
|
||||
implementation "androidx.preference:preference-ktx:1.1.1"
|
||||
implementation "androidx.browser:browser:1.3.0"
|
||||
}
|
||||
|
||||
android {
|
||||
|
@ -46,14 +49,15 @@ android {
|
|||
applicationId "com.newsblur"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 29
|
||||
versionCode 177
|
||||
versionName "10.1.1"
|
||||
versionCode 180
|
||||
versionName "10.2.1b1"
|
||||
}
|
||||
compileOptions.with {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
}
|
||||
android.buildFeatures.viewBinding = true
|
||||
android.buildFeatures.dataBinding = true
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#A6A6A6"
|
||||
android:fillColor="@color/gray55"
|
||||
android:pathData="M19,18l2,1V3c0,-1.1 -0.9,-2 -2,-2H8.99C7.89,1 7,1.9 7,3h10c1.1,0 2,0.9 2,2v13zM15,5H5c-1.1,0 -2,0.9 -2,2v16l7,-3 7,3V7c0,-1.1 -0.9,-2 -2,-2z" />
|
||||
</vector>
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#A6A6A6"
|
||||
android:fillColor="@color/gray55"
|
||||
android:pathData="M8.1,13.34l2.83,-2.83L3.91,3.5c-1.56,1.56 -1.56,4.09 0,5.66l4.19,4.18zM14.88,11.53c1.53,0.71 3.68,0.21 5.27,-1.38 1.91,-1.91 2.28,-4.65 0.81,-6.12 -1.46,-1.46 -4.2,-1.1 -6.12,0.81 -1.59,1.59 -2.09,3.74 -1.38,5.27L3.7,19.87l1.41,1.41L12,14.41l6.88,6.88 1.41,-1.41L13.41,13l1.47,-1.47z" />
|
||||
</vector>
|
||||
|
|
BIN
clients/android/NewsBlur/res/drawable/ic_file_edit.png
Normal file
BIN
clients/android/NewsBlur/res/drawable/ic_file_edit.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 509 B |
|
@ -4,6 +4,6 @@
|
|||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#A6A6A6"
|
||||
android:fillColor="@color/gray55"
|
||||
android:pathData="M10,4H4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2V8c0,-1.1 -0.9,-2 -2,-2h-8l-2,-2z" />
|
||||
</vector>
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#A6A6A6"
|
||||
android:fillColor="@color/gray55"
|
||||
android:pathData="M21,9A1,1 0,0 1,22 10A1,1 0,0 1,21 11H16.53L16.4,12.21L14.2,17.15C14,17.65 13.47,18 12.86,18H8.5C7.7,18 7,17.27 7,16.5V10C7,9.61 7.16,9.26 7.43,9L11.63,4.1L12.4,4.84C12.6,5.03 12.72,5.29 12.72,5.58L12.69,5.8L11,9H21M2,18V10H5V18H2Z" />
|
||||
</vector>
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#A6A6A6"
|
||||
android:fillColor="@color/gray55"
|
||||
android:pathData="M18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM12,17c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM15.1,8L8.9,8L8.9,6c0,-1.71 1.39,-3.1 3.1,-3.1 1.71,0 3.1,1.39 3.1,3.1v2z" />
|
||||
</vector>
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 389 B |
|
@ -4,9 +4,9 @@
|
|||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#A6A6A6"
|
||||
android:fillColor="@color/gray55"
|
||||
android:pathData="M6.18,17.82m-2.18,0a2.18,2.18 0,1 1,4.36 0a2.18,2.18 0,1 1,-4.36 0" />
|
||||
<path
|
||||
android:fillColor="#A6A6A6"
|
||||
android:fillColor="@color/gray55"
|
||||
android:pathData="M4,4.44v2.83c7.03,0 12.73,5.7 12.73,12.73h2.83c0,-8.59 -6.97,-15.56 -15.56,-15.56zM4,10.1v2.83c3.9,0 7.07,3.17 7.07,7.07h2.83c0,-5.47 -4.43,-9.9 -9.9,-9.9z" />
|
||||
</vector>
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#A6A6A6"
|
||||
android:fillColor="@color/gray55"
|
||||
android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z" />
|
||||
</vector>
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#A6A6A6"
|
||||
android:fillColor="@color/gray55"
|
||||
android:pathData="M12,4L12,1L8,5l4,4L12,6c3.31,0 6,2.69 6,6 0,1.01 -0.25,1.97 -0.7,2.8l1.46,1.46C19.54,15.03 20,13.57 20,12c0,-4.42 -3.58,-8 -8,-8zM12,18c-3.31,0 -6,-2.69 -6,-6 0,-1.01 0.25,-1.97 0.7,-2.8L5.24,7.74C4.46,8.97 4,10.43 4,12c0,4.42 3.58,8 8,8v3l4,-4 -4,-4v3z" />
|
||||
</vector>
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#A6A6A6"
|
||||
android:fillColor="@color/gray55"
|
||||
android:pathData="M14,17L4,17v2h10v-2zM20,9L4,9v2h16L20,9zM4,15h16v-2L4,13v2zM4,5v2h16L20,5L4,5z" />
|
||||
</vector>
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent" >
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/actionbar_icon"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="4dp"
|
||||
android:src="@drawable/world" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/actionbar_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_toRightOf="@id/actionbar_icon"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textSize="18sp" />
|
||||
|
||||
</RelativeLayout>
|
|
@ -1,25 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:animateLayoutChanges="true"
|
||||
style="?itemBackground" >
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<com.newsblur.view.ProgressThrobber
|
||||
android:id="@+id/loading_throb"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_height="6dp" />
|
||||
<include layout="@layout/toolbar_newsblur" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/progress_text"
|
||||
<RelativeLayout
|
||||
style="?layoutBackground"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_marginTop="25dp"
|
||||
android:gravity="center_horizontal"
|
||||
style="?explainerText"
|
||||
android:visibility="invisible"
|
||||
android:textSize="16sp" />
|
||||
|
||||
</RelativeLayout>
|
||||
android:layout_height="match_parent"
|
||||
android:animateLayoutChanges="true"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<com.newsblur.view.ProgressThrobber
|
||||
android:id="@+id/loading_throb"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="6dp"
|
||||
android:layout_alignParentTop="true" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/progress_text"
|
||||
style="?explainerText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_marginTop="25dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:textSize="16sp"
|
||||
android:visibility="invisible" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
|
|
@ -1,32 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/item_background" >
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/addsocial_container"
|
||||
<include layout="@layout/toolbar_newsblur" />
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="10dp"
|
||||
android:gravity="center"
|
||||
android:padding="20dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:gravity="right"
|
||||
android:padding="10dp" >
|
||||
android:background="@color/item_background"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<Button
|
||||
android:id="@+id/login_addsocial_nextstep"
|
||||
android:layout_width="wrap_content"
|
||||
<FrameLayout
|
||||
android:id="@+id/addsocial_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="10dp"
|
||||
android:gravity="center"
|
||||
android:padding="20dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="10dp"
|
||||
android:text="Start Reading"
|
||||
android:textSize="14sp" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_alignParentBottom="true"
|
||||
android:gravity="right"
|
||||
android:padding="10dp">
|
||||
|
||||
</RelativeLayout>
|
||||
<Button
|
||||
android:id="@+id/login_addsocial_nextstep"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="10dp"
|
||||
android:text="Start Reading"
|
||||
android:textSize="14sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
|
@ -1,25 +1,34 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
style="?listBackground" >
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/empty_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_centerInParent="true"
|
||||
android:gravity="center"
|
||||
android:text="@string/empty_search_notice"
|
||||
android:textColor="@color/text"
|
||||
android:textSize="13sp"
|
||||
android:textStyle="italic" />
|
||||
|
||||
<ListView
|
||||
android:id="@+id/feed_result_list"
|
||||
android:name="com.newsblur.fragment.FolderListFragment"
|
||||
<include layout="@layout/toolbar_newsblur" />
|
||||
|
||||
<RelativeLayout
|
||||
style="?listBackground"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent" />
|
||||
android:layout_height="fill_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
</RelativeLayout>
|
||||
<TextView
|
||||
android:id="@+id/empty_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_centerInParent="true"
|
||||
android:gravity="center"
|
||||
android:text="@string/empty_search_notice"
|
||||
android:textColor="@color/text"
|
||||
android:textSize="13sp"
|
||||
android:textStyle="italic" />
|
||||
|
||||
<ListView
|
||||
android:id="@+id/feed_result_list"
|
||||
android:name="com.newsblur.fragment.FolderListFragment"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<WebView
|
||||
android:id="@+id/web_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progress_bar"
|
||||
style="?android:attr/progressBarStyleHorizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="-6dp"
|
||||
android:max="100"
|
||||
android:visibility="gone"/>
|
||||
|
||||
</FrameLayout>
|
|
@ -1,50 +1,57 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:animateLayoutChanges="true"
|
||||
style="?itemBackground" >
|
||||
|
||||
<EditText
|
||||
android:id="@+id/itemlist_search_query"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:textSize="16sp"
|
||||
android:hint="@string/story_search_hint"
|
||||
android:drawableLeft="@android:drawable/ic_menu_search"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:imeOptions="actionSearch"
|
||||
android:visibility="gone"
|
||||
android:animateLayoutChanges="true"
|
||||
/>
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/activity_itemlist_container"
|
||||
<include layout="@layout/toolbar_newsblur" />
|
||||
|
||||
<RelativeLayout
|
||||
style="?layoutBackground"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:layout_below="@id/itemlist_search_query"
|
||||
/>
|
||||
android:animateLayoutChanges="true"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<include layout="@layout/row_fleuron"
|
||||
android:id="@+id/footer_fleuron"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/itemlist_search_query"
|
||||
android:visibility="gone"/>
|
||||
<EditText
|
||||
android:id="@+id/itemlist_search_query"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:animateLayoutChanges="true"
|
||||
android:drawableLeft="@android:drawable/ic_menu_search"
|
||||
android:hint="@string/story_search_hint"
|
||||
android:imeOptions="actionSearch"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:textSize="16sp"
|
||||
android:visibility="gone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/itemlist_sync_status"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:padding="2dp"
|
||||
android:textSize="14sp"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/status_overlay_text"
|
||||
android:background="@color/status_overlay_background"
|
||||
android:text="SYNC STATUS"
|
||||
/>
|
||||
<LinearLayout
|
||||
android:id="@+id/activity_itemlist_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_below="@id/itemlist_search_query"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
</RelativeLayout>
|
||||
<include
|
||||
android:id="@+id/footer_fleuron"
|
||||
layout="@layout/row_fleuron"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/itemlist_search_query"
|
||||
android:visibility="gone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/itemlist_sync_status"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:background="@color/status_overlay_background"
|
||||
android:gravity="center"
|
||||
android:padding="2dp"
|
||||
android:text="SYNC STATUS"
|
||||
android:textColor="@color/status_overlay_text"
|
||||
android:textSize="14sp" />
|
||||
|
||||
</RelativeLayout>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
<RelativeLayout
|
||||
android:id="@+id/main_top_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:layout_alignParentTop="true"
|
||||
style="?actionbarBackground" >
|
||||
android:background="?colorPrimary" >
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/main_user_image"
|
||||
|
@ -75,7 +75,19 @@
|
|||
android:layout_marginLeft="3dp"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<Button
|
||||
<ImageButton
|
||||
android:id="@+id/main_search_feeds_button"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:padding="2dp"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_margin="8dp"
|
||||
android:layout_toStartOf="@+id/main_profile_button"
|
||||
android:layout_toLeftOf="@+id/main_profile_button"
|
||||
android:background="@drawable/ic_search"
|
||||
android:contentDescription="@string/menu_search_feeds" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/main_profile_button"
|
||||
android:layout_width="34dp"
|
||||
android:layout_height="34dp"
|
||||
|
@ -98,7 +110,7 @@
|
|||
android:layout_alignParentBottom="true"
|
||||
android:tag="feedIntelligenceSelector" />
|
||||
|
||||
<Button
|
||||
<ImageButton
|
||||
android:id="@+id/main_menu_button"
|
||||
android:layout_width="34dp"
|
||||
android:layout_height="34dp"
|
||||
|
@ -108,7 +120,7 @@
|
|||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentRight="true" />
|
||||
|
||||
<Button
|
||||
<ImageButton
|
||||
android:id="@+id/main_add_button"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
|
|
|
@ -1,60 +1,68 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:animateLayoutChanges="true">
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<include layout="@layout/toolbar_newsblur" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/container_sites_count"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="4dp"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingBottom="16dp"
|
||||
android:visibility="gone">
|
||||
android:layout_height="match_parent"
|
||||
android:animateLayoutChanges="true"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/container_sites_count"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="4dp"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingBottom="16dp"
|
||||
android:visibility="gone">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_reset_sites"
|
||||
style="?linkText"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="start"
|
||||
android:padding="4dp"
|
||||
android:text="@string/mute_config_reset_button"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_sites"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end|center_vertical"
|
||||
android:text="@string/mute_config_sites"
|
||||
android:textColor="@color/positive"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<ExpandableListView
|
||||
android:id="@+id/list_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:groupIndicator="@null" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_reset_sites"
|
||||
style="?linkText"
|
||||
android:layout_width="wrap_content"
|
||||
android:id="@+id/text_sync_status"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="start"
|
||||
android:padding="4dp"
|
||||
android:text="@string/mute_config_reset_button"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_sites"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end|center_vertical"
|
||||
android:text="@string/mute_config_sites"
|
||||
android:textColor="@color/positive"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="bold" />
|
||||
android:layout_gravity="bottom"
|
||||
android:background="@color/status_overlay_background"
|
||||
android:gravity="center"
|
||||
android:padding="2dp"
|
||||
android:textColor="@color/status_overlay_text"
|
||||
android:textSize="14sp"
|
||||
android:visibility="gone" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<ExpandableListView
|
||||
android:id="@+id/list_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:groupIndicator="@null" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_sync_status"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:background="@color/status_overlay_background"
|
||||
android:gravity="center"
|
||||
android:padding="2dp"
|
||||
android:textColor="@color/status_overlay_text"
|
||||
android:textSize="14sp"
|
||||
android:visibility="gone" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
|
@ -1,293 +1,303 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/container"
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<FrameLayout
|
||||
<include layout="@layout/toolbar_newsblur" />
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:id="@+id/container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:animateLayoutChanges="true">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/container_going_premium"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="@string/premium_title_going_premium"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:lineSpacingExtra="@dimen/extra_line_spacing"
|
||||
android:text="@string/premium_subtitle"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_policies"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:lineSpacingExtra="@dimen/extra_line_spacing"
|
||||
android:text="@string/premium_policies"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="40dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:src="@drawable/ic_hand_pointing_right" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/container_sub"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="40dp"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_sub_title"
|
||||
style="?linkText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/premium_subscription_title"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_sub_price"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text="@string/premium_subscription_price"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_loading"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:text="@string/loading"
|
||||
android:textSize="18sp" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="40dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_sync" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="40dp"
|
||||
android:text="@string/premium_sync" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_folder" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="40dp"
|
||||
android:text="@string/premium_read_by_folder" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_search" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="40dp"
|
||||
android:text="@string/premium_search" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_bookmark" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="40dp"
|
||||
android:text="@string/premium_searchable_tags" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_lock" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="40dp"
|
||||
android:text="@string/premium_privacy_options" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_rss_feed" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="40dp"
|
||||
android:text="@string/premium_custom_rss" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_text" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="40dp"
|
||||
android:text="@string/premium_text_view" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_dining" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="40dp"
|
||||
android:text="@string/premium_shiloh" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/img_shiloh"
|
||||
android:layout_width="104dp"
|
||||
android:layout_height="104dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="16dp"
|
||||
android:scaleType="centerCrop" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/container_gone_premium"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone">
|
||||
android:animateLayoutChanges="true">
|
||||
|
||||
<TextView
|
||||
<LinearLayout
|
||||
android:id="@+id/container_going_premium"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="120dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="@string/premium_title_gone_premium"
|
||||
android:textSize="40sp"
|
||||
android:textStyle="bold" />
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_subscription_renewal"
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="@string/premium_title_going_premium"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:lineSpacingExtra="@dimen/extra_line_spacing"
|
||||
android:text="@string/premium_subtitle"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_policies"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:lineSpacingExtra="@dimen/extra_line_spacing"
|
||||
android:text="@string/premium_policies"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="40dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:src="@drawable/ic_hand_pointing_right" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/container_sub"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="40dp"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_sub_title"
|
||||
style="?linkText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/premium_subscription_title"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_sub_price"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text="@string/premium_subscription_price"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_loading"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:text="@string/loading"
|
||||
android:textSize="18sp" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="40dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_sync" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="40dp"
|
||||
android:text="@string/premium_sync" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_folder" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="40dp"
|
||||
android:text="@string/premium_read_by_folder" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_search" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="40dp"
|
||||
android:text="@string/premium_search" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_bookmark" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="40dp"
|
||||
android:text="@string/premium_searchable_tags" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_lock" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="40dp"
|
||||
android:text="@string/premium_privacy_options" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_rss_feed" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="40dp"
|
||||
android:text="@string/premium_custom_rss" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_text" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="40dp"
|
||||
android:text="@string/premium_text_view" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/ic_dining" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="40dp"
|
||||
android:text="@string/premium_shiloh" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/img_shiloh"
|
||||
android:layout_width="104dp"
|
||||
android:layout_height="104dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="16dp"
|
||||
android:scaleType="centerCrop" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/container_gone_premium"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="320dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:lineSpacingExtra="@dimen/extra_line_spacing"
|
||||
android:textSize="18sp"
|
||||
android:visibility="gone" />
|
||||
android:visibility="gone">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="120dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="@string/premium_title_gone_premium"
|
||||
android:textSize="40sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_subscription_renewal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="320dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:lineSpacingExtra="@dimen/extra_line_spacing"
|
||||
android:textSize="18sp"
|
||||
android:visibility="gone" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<nl.dionsegijn.konfetti.KonfettiView
|
||||
android:id="@+id/konfetti"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<nl.dionsegijn.konfetti.KonfettiView
|
||||
android:id="@+id/konfetti"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</ScrollView>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
|
@ -1,29 +1,39 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
style="?itemBackground"
|
||||
android:orientation="vertical" >
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/profile_details"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
<include layout="@layout/toolbar_newsblur" />
|
||||
|
||||
<androidx.viewpager.widget.ViewPager
|
||||
android:id="@+id/activity_details_pager"
|
||||
<RelativeLayout
|
||||
style="?layoutBackground"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_below="@id/profile_details">
|
||||
android:orientation="vertical"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<androidx.viewpager.widget.PagerTitleStrip
|
||||
<FrameLayout
|
||||
android:id="@+id/profile_details"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="top"
|
||||
style="?activityDetailsPager"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp" />
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</androidx.viewpager.widget.ViewPager>
|
||||
<androidx.viewpager.widget.ViewPager
|
||||
android:id="@+id/activity_details_pager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_below="@id/profile_details">
|
||||
|
||||
</RelativeLayout>
|
||||
<androidx.viewpager.widget.PagerTitleStrip
|
||||
style="?activityDetailsPager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="top"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp" />
|
||||
|
||||
</androidx.viewpager.widget.ViewPager>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
|
|
@ -1,114 +1,118 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" >
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/reading_empty_view_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_marginTop="40dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="@string/loading"
|
||||
style="?explainerText"
|
||||
android:textSize="16sp" />
|
||||
<include layout="@layout/toolbar_newsblur" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/activity_reading_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<Button
|
||||
android:id="@+id/reading_overlay_text"
|
||||
android:layout_width="110dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:text="@string/overlay_text"
|
||||
android:textSize="14sp"
|
||||
android:paddingLeft="10dp"
|
||||
style="?selectorOverlayBackgroundText"
|
||||
android:onClick="overlayText" />
|
||||
<TextView
|
||||
android:id="@+id/reading_empty_view_text"
|
||||
style="?explainerText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="40dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="@string/loading"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/reading_overlay_send"
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_toRightOf="@id/reading_overlay_text"
|
||||
android:layout_marginLeft="2dp"
|
||||
android:layout_marginBottom="4dp"
|
||||
style="?selectorOverlayBackgroundSend"
|
||||
android:onClick="overlaySend" />
|
||||
<FrameLayout
|
||||
android:id="@+id/activity_reading_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/reading_overlay_right"
|
||||
android:layout_width="120dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_marginRight="8dp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:text="@string/overlay_next"
|
||||
android:textSize="14sp"
|
||||
style="?selectorOverlayBackgroundRight"
|
||||
android:onClick="overlayRight" />
|
||||
</FrameLayout>
|
||||
|
||||
<Button
|
||||
android:id="@+id/reading_overlay_left"
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_toLeftOf="@id/reading_overlay_right"
|
||||
android:layout_marginRight="2dp"
|
||||
android:layout_marginBottom="4dp"
|
||||
style="?selectorOverlayBackgroundLeft"
|
||||
android:onClick="overlayLeft" />
|
||||
|
||||
<com.newsblur.view.ProgressCircle
|
||||
android:id="@+id/reading_overlay_progress"
|
||||
style="@android:style/Widget.ProgressBar.Horizontal"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginRight="98dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:onClick="overlayCount" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/reading_overlay_progress_right"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginRight="98dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:indeterminate="true" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/reading_overlay_progress_left"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginLeft="90dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:indeterminate="true" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/reading_sync_status"
|
||||
android:layout_width="fill_parent"
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:padding="1dp"
|
||||
android:textSize="13sp"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/status_overlay_text"
|
||||
android:background="@color/status_overlay_background"
|
||||
android:visibility="gone" />
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginBottom="8dp">
|
||||
|
||||
</RelativeLayout>
|
||||
<TextView
|
||||
android:id="@+id/reading_overlay_text"
|
||||
style="?selectorOverlayBackgroundText"
|
||||
android:layout_width="110dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="start"
|
||||
android:layout_marginStart="8dp"
|
||||
android:gravity="center"
|
||||
android:onClick="overlayText"
|
||||
android:paddingStart="8dp"
|
||||
android:text="@string/overlay_text"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/reading_overlay_send"
|
||||
style="?selectorOverlayBackgroundSend"
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="start"
|
||||
android:layout_marginStart="120dp"
|
||||
android:onClick="overlaySend" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/reading_overlay_right"
|
||||
style="?selectorOverlayBackgroundRight"
|
||||
android:layout_width="120dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="end"
|
||||
android:layout_marginRight="8dp"
|
||||
android:gravity="center"
|
||||
android:onClick="overlayRight"
|
||||
android:text="@string/overlay_next"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/reading_overlay_left"
|
||||
style="?selectorOverlayBackgroundLeft"
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="end"
|
||||
android:layout_marginEnd="130dp"
|
||||
android:onClick="overlayLeft" />
|
||||
|
||||
<com.newsblur.view.ProgressCircle
|
||||
android:id="@+id/reading_overlay_progress"
|
||||
style="@android:style/Widget.ProgressBar.Horizontal"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_gravity="end|center_vertical"
|
||||
android:layout_marginRight="100dp"
|
||||
android:onClick="overlayCount" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/reading_overlay_progress_right"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_gravity="end|center_vertical"
|
||||
android:layout_marginRight="100dp"
|
||||
android:indeterminate="true" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/reading_overlay_progress_left"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_gravity="start|center_vertical"
|
||||
android:layout_marginStart="90dp"
|
||||
android:indeterminate="true" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/reading_sync_status"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal|bottom"
|
||||
android:background="@color/status_overlay_background"
|
||||
android:gravity="center"
|
||||
android:padding="1dp"
|
||||
android:textColor="@color/status_overlay_text"
|
||||
android:textSize="13sp"
|
||||
android:visibility="gone" />
|
||||
|
||||
</FrameLayout>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
|
15
clients/android/NewsBlur/res/layout/activity_settings.xml
Normal file
15
clients/android/NewsBlur/res/layout/activity_settings.xml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<include layout="@layout/toolbar_newsblur" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
|
@ -1,12 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/item_background" >
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<WebView
|
||||
android:id="@+id/webcontainer"
|
||||
<include layout="@layout/toolbar_newsblur" />
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
</RelativeLayout>
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/item_background"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<WebView
|
||||
android:id="@+id/webcontainer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
|
@ -1,21 +1,31 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ExpandableListView
|
||||
android:id="@+id/list_view"
|
||||
<include layout="@layout/toolbar_newsblur" />
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:groupIndicator="@null" />
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_no_subscriptions"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:padding="32dp"
|
||||
android:text="@string/title_no_subscriptions"
|
||||
android:visibility="gone" />
|
||||
<ExpandableListView
|
||||
android:id="@+id/list_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:groupIndicator="@null" />
|
||||
|
||||
</FrameLayout>
|
||||
<TextView
|
||||
android:id="@+id/text_no_subscriptions"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:padding="32dp"
|
||||
android:text="@string/title_no_subscriptions"
|
||||
android:visibility="gone" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
|
@ -19,7 +19,7 @@
|
|||
android:text="@string/intel_title_header"
|
||||
/>
|
||||
|
||||
<Button
|
||||
<ImageButton
|
||||
android:id="@+id/intel_title_clear"
|
||||
android:layout_below="@id/intel_title_header"
|
||||
android:layout_alignParentRight="true"
|
||||
|
@ -29,7 +29,7 @@
|
|||
android:background="@drawable/ic_clear_gray55"
|
||||
/>
|
||||
|
||||
<Button
|
||||
<ImageButton
|
||||
android:id="@+id/intel_title_dislike"
|
||||
android:layout_below="@id/intel_title_header"
|
||||
android:layout_toLeftOf="@id/intel_title_clear"
|
||||
|
@ -42,7 +42,7 @@
|
|||
android:background="@drawable/ic_dislike_gray55"
|
||||
/>
|
||||
|
||||
<Button
|
||||
<ImageButton
|
||||
android:id="@+id/intel_title_like"
|
||||
android:layout_below="@id/intel_title_header"
|
||||
android:layout_toLeftOf="@id/intel_title_dislike"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
style="?itemBackground"
|
||||
style="?layoutBackground"
|
||||
android:orientation="vertical" >
|
||||
|
||||
<RelativeLayout
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:orientation="vertical"
|
||||
style="?itemBackground" >
|
||||
style="?layoutBackground" >
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/empty_view"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
style="?itemBackground"
|
||||
style="?layoutBackground"
|
||||
android:orientation="vertical" >
|
||||
|
||||
<LinearLayout
|
||||
|
|
|
@ -63,12 +63,12 @@
|
|||
android:layout_below="@id/row_item_feed_header"
|
||||
android:background="@color/gray55"/>
|
||||
|
||||
<Button
|
||||
<ImageButton
|
||||
android:id="@+id/story_context_menu_button"
|
||||
android:layout_width="34dp"
|
||||
android:layout_height="34dp"
|
||||
android:layout_margin="5dp"
|
||||
android:background="@drawable/ic_menu_moreoverflow"
|
||||
style="?android:attr/actionOverflowButtonStyle"
|
||||
android:contentDescription="@string/description_menu"
|
||||
android:layout_below="@id/item_feed_border"
|
||||
android:layout_alignParentRight="true" />
|
||||
|
@ -107,12 +107,28 @@
|
|||
android:textSize="12sp"
|
||||
android:textStyle="bold"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/reading_story_changes"
|
||||
style="?readingItemMetadata"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/reading_item_date"
|
||||
android:layout_alignLeft="@id/reading_item_title"
|
||||
android:paddingTop="8dp"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingBottom="4dp"
|
||||
android:drawablePadding="6dp"
|
||||
android:drawableStart="@drawable/ic_file_edit"
|
||||
android:text="@string/story_show_changes"
|
||||
android:textSize="12sp"
|
||||
android:visibility="gone" />
|
||||
|
||||
<com.newsblur.view.FlowLayout
|
||||
android:id="@+id/reading_item_tags"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="17dp"
|
||||
android:layout_alignLeft="@id/reading_item_title"
|
||||
android:layout_below="@id/reading_item_date"
|
||||
android:layout_below="@id/reading_story_changes"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_marginTop="8dp" />
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
>
|
||||
|
||||
<Button
|
||||
<ImageButton
|
||||
android:id="@+id/intel_row_clear"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentRight="true"
|
||||
|
@ -14,7 +14,7 @@
|
|||
android:background="@drawable/ic_clear_gray55"
|
||||
/>
|
||||
|
||||
<Button
|
||||
<ImageButton
|
||||
android:id="@+id/intel_row_dislike"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_toLeftOf="@id/intel_row_clear"
|
||||
|
@ -27,7 +27,7 @@
|
|||
android:background="@drawable/ic_dislike_gray55"
|
||||
/>
|
||||
|
||||
<Button
|
||||
<ImageButton
|
||||
android:id="@+id/intel_row_like"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_toLeftOf="@id/intel_row_dislike"
|
||||
|
|
|
@ -10,14 +10,14 @@
|
|||
android:layout_marginBottom="15dp"
|
||||
android:baselineAligned="false" >
|
||||
|
||||
<Button
|
||||
<TextView
|
||||
android:id="@+id/share_story_button"
|
||||
android:layout_width="170dp"
|
||||
android:layout_height="36dp"
|
||||
style="?storyButtons"
|
||||
android:text="@string/share_this" />
|
||||
|
||||
<Button
|
||||
<TextView
|
||||
android:id="@+id/save_story_button"
|
||||
android:layout_width="170dp"
|
||||
android:layout_height="36dp"
|
||||
|
|
|
@ -1,35 +1,58 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom|center_horizontal"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginTop="10dp"
|
||||
android:paddingLeft="25dip"
|
||||
android:paddingRight="25dip"
|
||||
android:paddingBottom="10dip"
|
||||
android:paddingTop="10dip"
|
||||
>
|
||||
|
||||
<RadioButton android:id="@+id/radio_5"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/infrequent_5"/>
|
||||
<RadioButton android:id="@+id/radio_15"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/infrequent_15"/>
|
||||
<RadioButton android:id="@+id/radio_30"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/infrequent_30"/>
|
||||
<RadioButton android:id="@+id/radio_60"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/infrequent_60"/>
|
||||
<RadioButton android:id="@+id/radio_90"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/infrequent_90"/>
|
||||
android:orientation="vertical">
|
||||
|
||||
</RadioGroup>
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="@string/infrequent_choice_title"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<RadioGroup
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom|center_horizontal"
|
||||
android:layout_marginTop="8dp"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="25dip"
|
||||
android:paddingTop="10dip"
|
||||
android:paddingRight="25dip"
|
||||
android:paddingBottom="10dip">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/radio_5"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/infrequent_5" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/radio_15"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/infrequent_15" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/radio_30"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/infrequent_30" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/radio_60"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/infrequent_60" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/radio_90"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/infrequent_90" />
|
||||
|
||||
</RadioGroup>
|
||||
</LinearLayout>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
style="?itemBackground"
|
||||
style="?layoutBackground"
|
||||
android:paddingBottom="10dp"
|
||||
android:paddingTop="10dp" >
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="?itemBackground"
|
||||
style="?layoutBackground"
|
||||
android:focusable="false">
|
||||
|
||||
<RelativeLayout
|
||||
|
|
|
@ -14,7 +14,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:clickable="false"
|
||||
android:focusable="false" />
|
||||
android:focusable="false"
|
||||
android:minWidth="0dp"
|
||||
android:minHeight="0dp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/img"
|
||||
|
|
44
clients/android/NewsBlur/res/layout/toolbar_newsblur.xml
Normal file
44
clients/android/NewsBlur/res/layout/toolbar_newsblur.xml
Normal file
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.google.android.material.appbar.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/toolbar_arrow"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:src="?attr/homeAsUpIndicator"
|
||||
android:visibility="gone" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/toolbar_icon"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:src="@drawable/world" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/toolbar_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textSize="18sp" />
|
||||
|
||||
</LinearLayout>
|
||||
</com.google.android.material.appbar.MaterialToolbar>
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
|
@ -1,17 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item android:id="@+id/menu_mark_all_as_read"
|
||||
android:title="@string/menu_mark_all_as_read"
|
||||
android:showAsAction="ifRoom" android:icon="@drawable/ic_menu_markread_gray55" />
|
||||
app:showAsAction="ifRoom" android:icon="@drawable/ic_menu_markread_gray55" />
|
||||
<item android:id="@+id/menu_search_stories"
|
||||
android:title="@string/menu_search_stories"
|
||||
android:showAsAction="ifRoom" android:icon="@drawable/ic_menu_search_gray55" />
|
||||
app:showAsAction="ifRoom" android:icon="@drawable/ic_menu_search_gray55" />
|
||||
<item android:id="@+id/menu_story_order"
|
||||
android:title="@string/menu_story_order"
|
||||
android:showAsAction="never" />
|
||||
app:showAsAction="never" />
|
||||
<item android:id="@+id/menu_read_filter"
|
||||
android:title="@string/menu_read_filter"
|
||||
android:showAsAction="never" />
|
||||
app:showAsAction="never" />
|
||||
<item android:id="@+id/menu_story_list_style"
|
||||
android:title="@string/menu_story_list_style_choose" >
|
||||
<menu>
|
||||
|
@ -28,7 +29,7 @@
|
|||
</menu>
|
||||
</item>
|
||||
<item android:id="@+id/menu_textsize"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never"
|
||||
android:title="@string/menu_textsize"/>
|
||||
<item android:id="@+id/menu_theme"
|
||||
android:title="@string/menu_theme_choose" >
|
||||
|
@ -65,20 +66,20 @@
|
|||
</item>
|
||||
<item android:id="@+id/menu_statistics"
|
||||
android:title="@string/menu_statistics"
|
||||
android:showAsAction="never" />
|
||||
app:showAsAction="never" />
|
||||
<item android:id="@+id/menu_delete_feed"
|
||||
android:title="@string/menu_delete_feed"
|
||||
android:showAsAction="never" />
|
||||
app:showAsAction="never" />
|
||||
<item android:id="@+id/menu_rename_feed"
|
||||
android:title="@string/menu_rename_feed"
|
||||
android:showAsAction="never" />
|
||||
app:showAsAction="never" />
|
||||
<item android:id="@+id/menu_instafetch_feed"
|
||||
android:title="@string/menu_instafetch_feed" />
|
||||
<item android:id="@+id/menu_infrequent_cutoff"
|
||||
android:title="@string/menu_infrequent_cutoff"
|
||||
android:showAsAction="never" />
|
||||
app:showAsAction="never" />
|
||||
<item android:id="@+id/menu_save_search"
|
||||
android:title="Save Search"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never"
|
||||
android:visible="false"/>
|
||||
</menu>
|
||||
|
|
|
@ -1,60 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
|
||||
<item android:id="@+id/menu_refresh"
|
||||
android:title="@string/menu_refresh"
|
||||
android:showAsAction="never" />
|
||||
|
||||
<item android:id="@+id/menu_search_feeds"
|
||||
android:title="@string/menu_search_feeds"
|
||||
android:showAsAction="never" />
|
||||
|
||||
<item android:id="@+id/menu_add_feed"
|
||||
android:title="@string/menu_add_feed"
|
||||
android:showAsAction="never" />
|
||||
|
||||
<item android:id="@+id/menu_textsize"
|
||||
android:showAsAction="never"
|
||||
android:title="@string/menu_textsize"/>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<item android:id="@+id/menu_settings"
|
||||
android:title="@string/settings"
|
||||
android:showAsAction="never" />
|
||||
app:showAsAction="never" />
|
||||
|
||||
<item android:id="@+id/menu_mute_sites"
|
||||
android:title="@string/mute_sites"
|
||||
android:showAsAction="never" />
|
||||
app:showAsAction="never" />
|
||||
|
||||
<item android:id="@+id/menu_widget"
|
||||
android:title="@string/widget"
|
||||
android:showAsAction="never" />
|
||||
|
||||
<item android:id="@+id/menu_feedback"
|
||||
android:title="@string/menu_feedback"
|
||||
android:showAsAction="never" >
|
||||
<menu>
|
||||
<item android:id="@+id/menu_feedback_post"
|
||||
android:title="@string/menu_feedback_post"
|
||||
android:showAsAction="never" />
|
||||
<item android:id="@+id/menu_feedback_email"
|
||||
android:title="@string/menu_feedback_email"
|
||||
android:showAsAction="never" />
|
||||
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
<item android:id="@+id/menu_loginas"
|
||||
android:title="@string/menu_loginas"
|
||||
android:showAsAction="never"
|
||||
android:visible="false"/>
|
||||
app:showAsAction="never" />
|
||||
|
||||
<item android:id="@+id/menu_premium_account"
|
||||
android:title="@string/menu_premium_account"
|
||||
android:showAsAction="never" />
|
||||
|
||||
<item android:id="@+id/menu_logout"
|
||||
android:title="@string/menu_logout"
|
||||
android:showAsAction="never" />
|
||||
app:showAsAction="never" />
|
||||
|
||||
<item android:id="@+id/menu_textsize"
|
||||
app:showAsAction="never"
|
||||
android:title="@string/menu_textsize"/>
|
||||
|
||||
<item android:id="@+id/menu_theme"
|
||||
android:title="@string/menu_theme_choose" >
|
||||
|
@ -72,4 +38,27 @@
|
|||
</menu>
|
||||
</item>
|
||||
|
||||
<item android:id="@+id/menu_feedback"
|
||||
android:title="@string/menu_feedback"
|
||||
app:showAsAction="never" >
|
||||
<menu>
|
||||
<item android:id="@+id/menu_feedback_post"
|
||||
android:title="@string/menu_feedback_post"
|
||||
app:showAsAction="never" />
|
||||
<item android:id="@+id/menu_feedback_email"
|
||||
android:title="@string/menu_feedback_email"
|
||||
app:showAsAction="never" />
|
||||
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
<item android:id="@+id/menu_loginas"
|
||||
android:title="@string/menu_loginas"
|
||||
app:showAsAction="never"
|
||||
android:visible="false"/>
|
||||
|
||||
<item android:id="@+id/menu_logout"
|
||||
android:title="@string/menu_logout"
|
||||
app:showAsAction="never" />
|
||||
|
||||
</menu>
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/menu_sort_by"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never"
|
||||
android:title="@string/menu_sort_by">
|
||||
<menu>
|
||||
<group android:checkableBehavior="single">
|
||||
|
@ -26,7 +27,7 @@
|
|||
</item>
|
||||
<item
|
||||
android:id="@+id/menu_sort_order"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never"
|
||||
android:title="@string/menu_sort_order">
|
||||
<menu>
|
||||
<group android:checkableBehavior="single">
|
||||
|
@ -41,7 +42,7 @@
|
|||
</item>
|
||||
<item
|
||||
android:id="@+id/menu_folder_view"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never"
|
||||
android:title="@string/menu_folder_view">
|
||||
<menu>
|
||||
<group android:checkableBehavior="single">
|
||||
|
@ -68,7 +69,7 @@
|
|||
android:title="@string/menu_select_none" />
|
||||
<item
|
||||
android:id="@+id/menu_widget_background"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never"
|
||||
android:title="@string/menu_widget_background">
|
||||
<menu>
|
||||
<group android:checkableBehavior="single">
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_reading_fullscreen"
|
||||
android:icon="@drawable/ic_menu_fullscreen_gray55"
|
||||
android:showAsAction="always"
|
||||
android:title="@string/menu_fullscreen"/>
|
||||
|
||||
</menu>
|
|
@ -1,9 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<item android:id="@+id/menu_search"
|
||||
android:icon="@drawable/ic_menu_search_gray55"
|
||||
android:title="@string/menu_search"
|
||||
android:showAsAction="always" />
|
||||
app:showAsAction="always" />
|
||||
|
||||
</menu>
|
||||
|
|
|
@ -1,51 +1,52 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_reading_sharenewsblur"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never"
|
||||
android:title="@string/menu_sharenewsblur"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_reading_original"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never"
|
||||
android:title="@string/menu_original"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_send_story"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never"
|
||||
android:title="@string/menu_send_story"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_send_story_full"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never"
|
||||
android:title="@string/menu_send_story_full"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_textsize"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never"
|
||||
android:title="@string/menu_textsize"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_font"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never"
|
||||
android:title="@string/menu_font"/>
|
||||
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_reading_save"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never"
|
||||
android:title="@string/menu_save_story"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_reading_markunread"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never"
|
||||
android:title="@string/menu_mark_unread"/>
|
||||
|
||||
<item android:id="@+id/menu_go_to_feed"
|
||||
android:title="@string/go_to_feed"/>
|
||||
<item
|
||||
android:id="@+id/menu_intel"
|
||||
android:showAsAction="never"
|
||||
app:showAsAction="never"
|
||||
android:title="@string/menu_intel"/>
|
||||
|
||||
<item android:id="@+id/menu_theme"
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<attr name="feedRowNeutCountText" format="string" />
|
||||
<attr name="actionbarBackground" format="string" />
|
||||
<attr name="listBackground" format="string" />
|
||||
<attr name="itemBackground" format="string" />
|
||||
<attr name="layoutBackground" format="string" />
|
||||
<attr name="readingBackground" format="string" />
|
||||
<attr name="defaultText" format="string" />
|
||||
<attr name="linkText" format="string" />
|
||||
|
|
|
@ -1,6 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<color name="primary">@color/nb_green_gray91</color>
|
||||
<color name="primaryDark">@color/black</color>
|
||||
<color name="secondary">@color/newsblur_blue</color>
|
||||
|
||||
<color name="primary.dark">@color/gray13</color>
|
||||
<color name="primaryDark.dark">@color/black</color>
|
||||
<color name="secondary.dark">@color/newsblur_blue</color>
|
||||
|
||||
<color name="primary.black">@color/black</color>
|
||||
<color name="primaryDark.black">@color/black</color>
|
||||
<color name="secondary.black">@color/newsblur_blue</color>
|
||||
|
||||
<color name="black">#000000</color>
|
||||
<color name="gray07">#121212</color>
|
||||
<color name="gray10">#1A1A1A</color>
|
||||
|
@ -123,7 +135,7 @@
|
|||
<color name="tag_gray_shadow">#C9C9C8</color>
|
||||
<color name="tag_bg_dark">#757575</color>
|
||||
|
||||
<color name="newsblur_blue">#0b445a</color>
|
||||
<color name="newsblur_blue">#319DC5</color>
|
||||
|
||||
<color name="progress_circle_complete">@color/gray46</color>
|
||||
<color name="progress_circle_remaining">@color/gray75</color>
|
||||
|
|
|
@ -128,7 +128,6 @@
|
|||
<string name="profile_no_interactions">No interactions</string>
|
||||
|
||||
<string name="menu_profile">Profile</string>
|
||||
<string name="menu_refresh">Refresh</string>
|
||||
<string name="menu_search_feeds">Search your feeds</string>
|
||||
<string name="menu_original">View original</string>
|
||||
<string name="menu_send_story">Send link to…</string>
|
||||
|
@ -155,7 +154,6 @@
|
|||
<string name="menu_oldest_mark_newer_stories_as_read">\u21E3 Mark newer as read</string>
|
||||
<string name="menu_mark_story_as_read">Mark as read</string>
|
||||
<string name="menu_mark_unread">Mark as unread</string>
|
||||
<string name="menu_fullscreen">Full screen</string>
|
||||
<string name="menu_search_stories">Search…</string>
|
||||
<string name="menu_mute_feed">Mute feed</string>
|
||||
<string name="menu_unmute_feed">Unmute feed</string>
|
||||
|
@ -197,7 +195,10 @@
|
|||
|
||||
<string name="logout_warning">Are you sure you want to log out?</string>
|
||||
<string name="search_mark_read_warning">Look out! All stories in feed/folder would be marked read, not just search results. If you really want to mark all stories read, please clear your search query to confirm.</string>
|
||||
|
||||
|
||||
<string name="story_show_changes">Show Story Changes</string>
|
||||
<string name="story_hide_changes">Hide Story Changes</string>
|
||||
<string name="story_changes_loading">Story Changes Loading ...</string>
|
||||
<string name="your_feeds_search_hint">Search your feeds</string>
|
||||
<string name="feed_search_hint">Search term or feed URL</string>
|
||||
<string name="story_search_hint">Search for stories</string>
|
||||
|
@ -319,6 +320,11 @@
|
|||
</string-array>
|
||||
<string name="default_network_select_value">NOMONONME</string>
|
||||
|
||||
<string name="menu_delete_offline_stories">Delete offline stories …</string>
|
||||
<string name="menu_delete_offline_stories_key">delete_offline_stories</string>
|
||||
<string name="menu_delete_offline_stories_sum">Clear all offline stories and images</string>
|
||||
<string name="menu_delete_offline_stories_confirmation">Cleared all stories and images!</string>
|
||||
|
||||
<string name="menu_cache_age_select">Maximum Cache Age</string>
|
||||
<string name="menu_cache_age_select_sum">Clean up cached story content after…</string>
|
||||
<string name="menu_cache_age_select_opt_2d">2 days (reduce storage use)</string>
|
||||
|
@ -396,7 +402,6 @@
|
|||
<string name="settings_social">Social</string>
|
||||
<string name="settings_show_public_comments">Show Public Comments</string>
|
||||
<string name="settings_reading">Reading</string>
|
||||
<string name="settings_immersive_enter_single_tap">Immersive Mode Via Single Tap</string>
|
||||
<string name="settings_show_content_preview">Show Content Preview Text</string>
|
||||
<string name="settings_thumbnails_style">Image Preview Thumbnails</string>
|
||||
<string name="settings_notifications">Notifications</string>
|
||||
|
|
|
@ -1,25 +1,30 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<style name="dialogButton" parent="Widget.MaterialComponents.Button.TextButton">
|
||||
<item name="android:textColor">@color/black</item>
|
||||
<item name="android:letterSpacing">0</item>
|
||||
</style>
|
||||
|
||||
<style name="dialogButton.dark" parent="Widget.MaterialComponents.Button.TextButton">
|
||||
<item name="android:textColor">@color/white</item>
|
||||
<item name="android:letterSpacing">0</item>
|
||||
</style>
|
||||
|
||||
<style name="initStyle" parent="@android:style/Theme.DeviceDefault.NoActionBar">
|
||||
<item name="android:windowBackground">@color/transparent</item>
|
||||
</style>
|
||||
|
||||
<style name="actionbar" parent="@android:style/Widget.Holo.Light.ActionBar">
|
||||
<item name="android:background">@color/bar_background</item>
|
||||
<style name="actionbar" parent="ThemeOverlay.MaterialComponents.Light">
|
||||
<item name="colorControlNormal">@color/gray55</item>
|
||||
</style>
|
||||
<style name="actionbar.dark" parent="@android:style/Widget.Holo.ActionBar">
|
||||
<style name="actionbar.dark" parent="ThemeOverlay.MaterialComponents">
|
||||
<item name="android:background">@color/dark_bar_background</item>
|
||||
<item name="colorControlNormal">@color/gray55</item>
|
||||
</style>
|
||||
<style name="actionbar.black" parent="@android:style/Widget.Holo.ActionBar">
|
||||
<style name="actionbar.black" parent="ThemeOverlay.MaterialComponents">
|
||||
<item name="android:background">@color/black</item>
|
||||
</style>
|
||||
|
||||
<style name="expandableListView" parent="@android:style/Widget.Holo.Light.ExpandableListView">
|
||||
<item name="android:background">@drawable/list_background</item>
|
||||
</style>
|
||||
<style name="expandableListView.dark" parent="@android:style/Widget.Holo.ExpandableListView">
|
||||
<item name="android:background">@drawable/dark_list_background</item>
|
||||
<item name="colorControlNormal">@color/gray55</item>
|
||||
</style>
|
||||
|
||||
<style name="selectorFolderBackground">
|
||||
|
@ -63,13 +68,13 @@
|
|||
<item name="android:background">@drawable/dark_list_background</item>
|
||||
</style>
|
||||
|
||||
<style name="itemBackground">
|
||||
<style name="layoutBackground">
|
||||
<item name="android:background">@color/item_background</item>
|
||||
</style>
|
||||
<style name="itemBackground.dark">
|
||||
<style name="layoutBackground.dark">
|
||||
<item name="android:background">@color/dark_item_background</item>
|
||||
</style>
|
||||
<style name="itemBackground.black">
|
||||
<style name="layoutBackground.black">
|
||||
<item name="android:background">@color/black</item>
|
||||
</style>
|
||||
|
||||
|
@ -176,6 +181,7 @@
|
|||
<item name="android:textColor">@color/button_text</item>
|
||||
<item name="android:background">@drawable/button_background</item>
|
||||
<item name="android:gravity">center</item>
|
||||
<item name="android:letterSpacing">0</item>
|
||||
</style>
|
||||
<style name="storyButtons.dark">
|
||||
<item name="android:textSize">14sp</item>
|
||||
|
@ -184,6 +190,7 @@
|
|||
<item name="android:textColor">@color/button_text_dark</item>
|
||||
<item name="android:background">@drawable/button_background_dark</item>
|
||||
<item name="android:gravity">center</item>
|
||||
<item name="android:letterSpacing">0</item>
|
||||
</style>
|
||||
|
||||
<style name="shareBarBackground">
|
||||
|
@ -377,21 +384,33 @@
|
|||
<item name="android:src">@drawable/mute_black</item>
|
||||
</style>
|
||||
|
||||
<!-- these fix the Android framework bug that causes context menus to get badly
|
||||
truncated when the Holo theme is used on a v7+ device:
|
||||
https://issuetracker.google.com/issues/37118658 -->
|
||||
<style name="contextPopupStyle" parent="@android:style/Widget.Holo.Light.PopupMenu">
|
||||
<item name="android:overlapAnchor">true</item>
|
||||
</style>
|
||||
<style name="contextPopupStyle.dark" parent="@android:style/Widget.Holo.PopupMenu">
|
||||
<item name="android:overlapAnchor">true</item>
|
||||
<style name="actionBarPopup" parent="Widget.MaterialComponents.PopupMenu">
|
||||
<item name="android:background">@color/transparent</item>
|
||||
<item name="popupMenuBackground">@color/primary</item>
|
||||
</style>
|
||||
|
||||
<!-- Fixes menu text being too dark on Moto devices -->
|
||||
<style name="itemTextAppearance">
|
||||
<item name="android:textColor">@color/black</item>
|
||||
<style name="actionBarPopup.dark" parent="Widget.MaterialComponents.PopupMenu">
|
||||
<item name="android:background">@color/transparent</item>
|
||||
<item name="popupMenuBackground">@color/gray13</item>
|
||||
</style>
|
||||
<style name="itemTextAppearance.dark">
|
||||
<item name="android:textColor">@color/white</item>
|
||||
|
||||
<style name="preferenceTheme" parent="@style/PreferenceThemeOverlay">
|
||||
<item name="preferenceCategoryStyle">@style/preferenceCategory</item>
|
||||
<item name="checkBoxPreferenceStyle">@style/checkBoxPreference</item>
|
||||
<item name="dialogPreferenceStyle">@style/dialogPreference</item>
|
||||
<item name="preferenceStyle">@style/dialogPreference</item>
|
||||
</style>
|
||||
|
||||
<style name="preferenceCategory" parent="Preference.Category.Material">
|
||||
<item name="iconSpaceReserved">false</item>
|
||||
</style>
|
||||
|
||||
<style name="checkBoxPreference" parent="Preference.CheckBoxPreference.Material">
|
||||
<item name="iconSpaceReserved">false</item>
|
||||
</style>
|
||||
|
||||
<style name="dialogPreference" parent="Preference.DialogPreference.Material">
|
||||
<item name="iconSpaceReserved">false</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -1,14 +1,21 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<style name="NewsBlurTheme" parent="@android:style/Theme.Holo.Light" >
|
||||
<item name="android:actionBarStyle">@style/actionbar</item>
|
||||
<item name="android:expandableListViewStyle">@style/expandableListView</item>
|
||||
<style name="NewsBlurTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
|
||||
<item name="colorPrimary">@color/primary</item>
|
||||
<item name="colorPrimaryDark">@color/primaryDark</item>
|
||||
<item name="colorSecondary">@color/secondary</item>
|
||||
<item name="actionBarTheme">@style/actionbar</item>
|
||||
<item name="actionBarPopupTheme">@style/actionBarPopup</item>
|
||||
<item name="popupMenuBackground">@color/primary</item>
|
||||
<item name="buttonBarPositiveButtonStyle">@style/dialogButton</item>
|
||||
<item name="buttonBarNegativeButtonStyle">@style/dialogButton</item>
|
||||
<item name="buttonBarNeutralButtonStyle">@style/dialogButton</item>
|
||||
<item name="selectorFolderBackground">@style/selectorFolderBackground</item>
|
||||
<item name="selectorFeedBackground">@style/selectorFeedBackground</item>
|
||||
<item name="feedRowNeutCountText">@style/feedRowNeutCountText</item>
|
||||
<item name="actionbarBackground">@style/actionbarBackground</item>
|
||||
<item name="listBackground">@style/listBackground</item>
|
||||
<item name="itemBackground">@style/itemBackground</item>
|
||||
<item name="layoutBackground">@style/layoutBackground</item>
|
||||
<item name="readingBackground">@style/readingBackground</item>
|
||||
<item name="defaultText">@style/defaultText</item>
|
||||
<item name="linkText">@style/linkText</item>
|
||||
|
@ -40,19 +47,26 @@
|
|||
<item name="selectorOverlayBackgroundStory">@style/selectorOverlayBackgroundStory</item>
|
||||
<item name="selectorOverlayBackgroundText">@style/selectorOverlayBackgroundText</item>
|
||||
<item name="muteicon">@style/muteicon</item>
|
||||
<item name="android:contextPopupMenuStyle">@style/contextPopupStyle</item>
|
||||
<item name="android:textColorPrimary">@color/black</item>
|
||||
<item name="android:textColor">@color/black</item>
|
||||
<item name="preferenceTheme">@style/preferenceTheme</item>
|
||||
</style>
|
||||
|
||||
<style name="NewsBlurDarkTheme" parent="@android:style/Theme.Holo" >
|
||||
<item name="android:actionBarStyle">@style/actionbar.dark</item>
|
||||
<item name="android:expandableListViewStyle">@style/expandableListView.dark</item>
|
||||
<style name="NewsBlurDarkTheme" parent="Theme.MaterialComponents.NoActionBar">
|
||||
<item name="colorPrimary">@color/primary.dark</item>
|
||||
<item name="colorPrimaryDark">@color/primaryDark.dark</item>
|
||||
<item name="colorSecondary">@color/secondary.dark</item>
|
||||
<item name="actionBarTheme">@style/actionbar.dark</item>
|
||||
<item name="actionBarPopupTheme">@style/actionBarPopup.dark</item>
|
||||
<item name="popupMenuBackground">@color/gray13</item>
|
||||
<item name="buttonBarPositiveButtonStyle">@style/dialogButton.dark</item>
|
||||
<item name="buttonBarNegativeButtonStyle">@style/dialogButton.dark</item>
|
||||
<item name="buttonBarNeutralButtonStyle">@style/dialogButton.dark</item>
|
||||
<item name="selectorFolderBackground">@style/selectorFolderBackground.dark</item>
|
||||
<item name="selectorFeedBackground">@style/selectorFeedBackground.dark</item>
|
||||
<item name="feedRowNeutCountText">@style/feedRowNeutCountText.dark</item>
|
||||
<item name="actionbarBackground">@style/actionbarBackground.dark</item>
|
||||
<item name="listBackground">@style/listBackground.dark</item>
|
||||
<item name="itemBackground">@style/itemBackground.dark</item>
|
||||
<item name="layoutBackground">@style/layoutBackground.dark</item>
|
||||
<item name="readingBackground">@style/readingBackground.dark</item>
|
||||
<item name="defaultText">@style/defaultText.dark</item>
|
||||
<item name="linkText">@style/linkText.dark</item>
|
||||
|
@ -84,22 +98,27 @@
|
|||
<item name="selectorOverlayBackgroundStory">@style/selectorOverlayBackgroundStory.dark</item>
|
||||
<item name="selectorOverlayBackgroundText">@style/selectorOverlayBackgroundText.dark</item>
|
||||
<item name="muteicon">@style/muteicon.dark</item>
|
||||
|
||||
<!--requires API 24-->
|
||||
<item name="android:contextPopupMenuStyle">@style/contextPopupStyle.dark</item>
|
||||
<item name="android:textColorPrimary">@color/white</item>
|
||||
<item name="android:itemTextAppearance">@style/itemTextAppearance.dark</item>
|
||||
<item name="android:textColor">@color/white</item>
|
||||
<item name="preferenceTheme">@style/preferenceTheme</item>
|
||||
<item name="android:navigationBarColor">@android:color/black</item>
|
||||
</style>
|
||||
|
||||
<style name="NewsBlurBlackTheme" parent="@android:style/Theme.Holo" >
|
||||
<item name="android:actionBarStyle">@style/actionbar.black</item>
|
||||
<item name="android:expandableListViewStyle">@style/expandableListView.dark</item>
|
||||
<style name="NewsBlurBlackTheme" parent="Theme.MaterialComponents.NoActionBar" >
|
||||
<item name="colorPrimary">@color/primary.black</item>
|
||||
<item name="colorPrimaryDark">@color/primaryDark.black</item>
|
||||
<item name="colorSecondary">@color/secondary.black</item>
|
||||
<item name="actionBarTheme">@style/actionbar.black</item>
|
||||
<item name="actionBarPopupTheme">@style/actionBarPopup.dark</item>
|
||||
<item name="popupMenuBackground">@color/gray13</item>
|
||||
<item name="buttonBarPositiveButtonStyle">@style/dialogButton.dark</item>
|
||||
<item name="buttonBarNegativeButtonStyle">@style/dialogButton.dark</item>
|
||||
<item name="buttonBarNeutralButtonStyle">@style/dialogButton.dark</item>
|
||||
<item name="selectorFolderBackground">@style/selectorFolderBackground.black</item>
|
||||
<item name="selectorFeedBackground">@style/selectorFeedBackground.dark</item>
|
||||
<item name="feedRowNeutCountText">@style/feedRowNeutCountText.dark</item>
|
||||
<item name="actionbarBackground">@style/actionbarBackground.black</item>
|
||||
<item name="listBackground">@style/listBackground.dark</item>
|
||||
<item name="itemBackground">@style/itemBackground.black</item>
|
||||
<item name="layoutBackground">@style/layoutBackground.black</item>
|
||||
<item name="readingBackground">@style/readingBackground.black</item>
|
||||
<item name="defaultText">@style/defaultText.dark</item>
|
||||
<item name="linkText">@style/linkText.dark</item>
|
||||
|
@ -131,8 +150,8 @@
|
|||
<item name="selectorOverlayBackgroundStory">@style/selectorOverlayBackgroundStory.dark</item>
|
||||
<item name="selectorOverlayBackgroundText">@style/selectorOverlayBackgroundText.dark</item>
|
||||
<item name="muteicon">@style/muteicon.dark</item>
|
||||
<item name="android:contextPopupMenuStyle">@style/contextPopupStyle.dark</item>
|
||||
<item name="android:textColorPrimary">@color/white</item>
|
||||
<item name="android:itemTextAppearance">@style/itemTextAppearance.dark</item>
|
||||
<item name="android:textColor">@color/white</item>
|
||||
<item name="preferenceTheme">@style/preferenceTheme</item>
|
||||
<item name="android:navigationBarColor">@android:color/black</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
|
|
@ -34,6 +34,10 @@
|
|||
android:entries="@array/cache_age_select_entries"
|
||||
android:entryValues="@array/cache_age_select_values"
|
||||
android:defaultValue="@string/default_cache_age_select_value" />
|
||||
<Preference
|
||||
android:title="@string/menu_delete_offline_stories"
|
||||
android:key="@string/menu_delete_offline_stories_key"
|
||||
android:summary="@string/menu_delete_offline_stories_sum" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
|
@ -119,11 +123,6 @@
|
|||
android:entries="@array/default_font_entries"
|
||||
android:entryValues="@array/default_font_values"
|
||||
android:defaultValue="@string/default_font_value" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:key="immersive_enter_single_tap"
|
||||
android:title="@string/settings_immersive_enter_single_tap" >
|
||||
</CheckBoxPreference>
|
||||
<ListPreference
|
||||
android:key="volume_key_navigation"
|
||||
android:title="@string/volume_key_navigation"
|
||||
|
|
|
@ -7,6 +7,7 @@ import android.webkit.WebViewClient;
|
|||
|
||||
import com.newsblur.R;
|
||||
import com.newsblur.network.APIConstants;
|
||||
import com.newsblur.util.UIUtils;
|
||||
|
||||
public class AddFacebook extends NbActivity {
|
||||
|
||||
|
@ -17,10 +18,12 @@ public class AddFacebook extends NbActivity {
|
|||
protected void onCreate(Bundle bundle) {
|
||||
super.onCreate(bundle);
|
||||
setContentView(R.layout.activity_webcontainer);
|
||||
|
||||
|
||||
UIUtils.setupToolbar(this, R.drawable.logo, getString(R.string.add_facebook), true);
|
||||
|
||||
webview = (WebView) findViewById(R.id.webcontainer);
|
||||
webview.getSettings().setJavaScriptEnabled(true);
|
||||
|
||||
|
||||
webview.setWebViewClient(new WebViewClient() {
|
||||
// this was deprecated in API 24 but the replacement only added in the same release.
|
||||
// the suppression can be removed when we move past 24
|
||||
|
|
|
@ -20,10 +20,10 @@ public class AddFeedExternal extends NbActivity implements AddFeedFragment.AddFe
|
|||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
binding = ActivityAddfeedexternalBinding.inflate(getLayoutInflater());
|
||||
getActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
setContentView(binding.getRoot());
|
||||
|
||||
UIUtils.setupToolbar(this, R.drawable.logo, "Add Feed", true);
|
||||
|
||||
binding.loadingThrob.setEnabled(!ViewUtils.isPowerSaveMode(this));
|
||||
binding.loadingThrob.setColors(UIUtils.getColor(this, R.color.refresh_1),
|
||||
UIUtils.getColor(this, R.color.refresh_2),
|
||||
|
|
|
@ -10,6 +10,7 @@ import android.widget.Button;
|
|||
|
||||
import com.newsblur.R;
|
||||
import com.newsblur.fragment.AddSocialFragment;
|
||||
import com.newsblur.util.UIUtils;
|
||||
|
||||
public class AddSocial extends NbActivity {
|
||||
|
||||
|
@ -21,6 +22,8 @@ public class AddSocial extends NbActivity {
|
|||
protected void onCreate(Bundle bundle) {
|
||||
super.onCreate(bundle);
|
||||
setContentView(R.layout.activity_addsocial);
|
||||
|
||||
UIUtils.setupToolbar(this, R.drawable.logo, getString(R.string.add_friends), false);
|
||||
|
||||
fragmentManager = getSupportFragmentManager();
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import android.webkit.WebViewClient;
|
|||
|
||||
import com.newsblur.R;
|
||||
import com.newsblur.network.APIConstants;
|
||||
import com.newsblur.util.UIUtils;
|
||||
|
||||
public class AddTwitter extends NbActivity {
|
||||
|
||||
|
@ -17,6 +18,8 @@ public class AddTwitter extends NbActivity {
|
|||
protected void onCreate(Bundle bundle) {
|
||||
super.onCreate(bundle);
|
||||
setContentView(R.layout.activity_webcontainer);
|
||||
|
||||
UIUtils.setupToolbar(this, R.drawable.logo, getString(R.string.add_twitter), true);
|
||||
|
||||
webview = (WebView) findViewById(R.id.webcontainer);
|
||||
webview.getSettings().setJavaScriptEnabled(true);
|
||||
|
|
|
@ -11,7 +11,7 @@ public class AllSharedStoriesItemsList extends ItemsList {
|
|||
protected void onCreate(Bundle bundle) {
|
||||
super.onCreate(bundle);
|
||||
|
||||
UIUtils.setCustomActionBar(this, R.drawable.ak_icon_blurblogs, getResources().getString(R.string.all_shared_stories_title));
|
||||
UIUtils.setupToolbar(this, R.drawable.ak_icon_blurblogs, getResources().getString(R.string.all_shared_stories_title), false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -11,7 +11,7 @@ public class AllSharedStoriesReading extends Reading {
|
|||
protected void onCreate(Bundle savedInstanceBundle) {
|
||||
super.onCreate(savedInstanceBundle);
|
||||
|
||||
UIUtils.setCustomActionBar(this, R.drawable.ak_icon_blurblogs, getResources().getString(R.string.all_shared_stories_title));
|
||||
UIUtils.setupToolbar(this, R.drawable.ak_icon_blurblogs, getResources().getString(R.string.all_shared_stories_title), false);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ public class AllStoriesItemsList extends ItemsList {
|
|||
protected void onCreate(Bundle bundle) {
|
||||
super.onCreate(bundle);
|
||||
|
||||
UIUtils.setCustomActionBar(this, R.drawable.ak_icon_allstories, getResources().getString(R.string.all_stories_title));
|
||||
UIUtils.setupToolbar(this, R.drawable.ak_icon_allstories, getResources().getString(R.string.all_stories_title), false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -11,8 +11,7 @@ public class AllStoriesReading extends Reading {
|
|||
protected void onCreate(Bundle savedInstanceBundle) {
|
||||
super.onCreate(savedInstanceBundle);
|
||||
|
||||
UIUtils.setCustomActionBar(this, R.drawable.ak_icon_allstories, getResources().getString(R.string.all_stories_title));
|
||||
setTitle(getResources().getString(R.string.all_stories_row_title));
|
||||
UIUtils.setupToolbar(this, R.drawable.ak_icon_allstories, getResources().getString(R.string.all_stories_title), false);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -46,7 +46,6 @@ abstract public class FeedChooser extends NbActivity {
|
|||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
bindLayout();
|
||||
getActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
setupList();
|
||||
loadFeeds();
|
||||
loadFolders();
|
||||
|
|
|
@ -46,7 +46,7 @@ public class FeedItemsList extends ItemsList {
|
|||
|
||||
super.onCreate(bundle);
|
||||
|
||||
UIUtils.setCustomActionBar(this, feed.faviconUrl, feed.title);
|
||||
UIUtils.setupToolbar(this, feed.faviconUrl, feed.title, false);
|
||||
checkInAppReview();
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ public class FeedReading extends Reading {
|
|||
return;
|
||||
}
|
||||
|
||||
UIUtils.setCustomActionBar(this, feed.faviconUrl, feed.title);
|
||||
UIUtils.setupToolbar(this, feed.faviconUrl, feed.title, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ public class FolderItemsList extends ItemsList {
|
|||
|
||||
super.onCreate(bundle);
|
||||
|
||||
UIUtils.setCustomActionBar(this, R.drawable.g_icn_folder_rss, folderName);
|
||||
UIUtils.setupToolbar(this, R.drawable.g_icn_folder_rss, folderName, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -11,7 +11,7 @@ public class FolderReading extends Reading {
|
|||
protected void onCreate(Bundle savedInstanceBundle) {
|
||||
super.onCreate(savedInstanceBundle);
|
||||
|
||||
UIUtils.setCustomActionBar(this, R.drawable.g_icn_folder_rss, fs.getFolderName());
|
||||
UIUtils.setupToolbar(this, R.drawable.g_icn_folder_rss, fs.getFolderName(), false);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ public class GlobalSharedStoriesItemsList extends ItemsList {
|
|||
protected void onCreate(Bundle bundle) {
|
||||
super.onCreate(bundle);
|
||||
|
||||
UIUtils.setCustomActionBar(this, R.drawable.ak_icon_global, getResources().getString(R.string.global_shared_stories_title));
|
||||
UIUtils.setupToolbar(this, R.drawable.ak_icon_global, getResources().getString(R.string.global_shared_stories_title), false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -12,7 +12,7 @@ public class GlobalSharedStoriesReading extends Reading {
|
|||
protected void onCreate(Bundle savedInstanceBundle) {
|
||||
super.onCreate(savedInstanceBundle);
|
||||
|
||||
UIUtils.setCustomActionBar(this, R.drawable.ak_icon_global, getResources().getString(R.string.global_shared_stories_title));
|
||||
UIUtils.setupToolbar(this, R.drawable.ak_icon_global, getResources().getString(R.string.global_shared_stories_title), false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,57 +0,0 @@
|
|||
package com.newsblur.activity;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.webkit.WebChromeClient;
|
||||
import android.webkit.WebView;
|
||||
import android.webkit.WebViewClient;
|
||||
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
|
||||
import com.newsblur.databinding.ActivityInAppBrowserBinding;
|
||||
import com.newsblur.util.PrefsUtils;
|
||||
|
||||
public class InAppBrowser extends FragmentActivity {
|
||||
|
||||
public static final String URI = "uri";
|
||||
|
||||
private ActivityInAppBrowserBinding binding;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
PrefsUtils.applyThemePreference(this);
|
||||
binding = ActivityInAppBrowserBinding.inflate(getLayoutInflater());
|
||||
setContentView(binding.getRoot());
|
||||
|
||||
String url = getIntent().getParcelableExtra(URI).toString();
|
||||
|
||||
binding.webView.getSettings().setJavaScriptEnabled(true);
|
||||
binding.webView.getSettings().setLoadWithOverviewMode(true);
|
||||
binding.webView.getSettings().setSupportZoom(true);
|
||||
|
||||
binding.webView.setWebViewClient(new WebViewClient() {
|
||||
@Override
|
||||
public void onPageStarted(WebView view, String url, Bitmap favicon) {
|
||||
super.onPageStarted(view, url, favicon);
|
||||
binding.progressBar.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageFinished(WebView view, String url) {
|
||||
super.onPageFinished(view, url);
|
||||
binding.progressBar.setVisibility(View.GONE);
|
||||
}
|
||||
});
|
||||
binding.webView.setWebChromeClient(new WebChromeClient() {
|
||||
@Override
|
||||
public void onProgressChanged(WebView view, int newProgress) {
|
||||
super.onProgressChanged(view, newProgress);
|
||||
binding.progressBar.setProgress(newProgress);
|
||||
}
|
||||
});
|
||||
|
||||
binding.webView.loadUrl(url);
|
||||
}
|
||||
}
|
|
@ -16,7 +16,7 @@ public class InfrequentItemsList extends ItemsList implements InfrequentCutoffCh
|
|||
protected void onCreate(Bundle bundle) {
|
||||
super.onCreate(bundle);
|
||||
|
||||
UIUtils.setCustomActionBar(this, R.drawable.ak_icon_allstories, getResources().getString(R.string.infrequent_title));
|
||||
UIUtils.setupToolbar(this, R.drawable.ak_icon_allstories, getResources().getString(R.string.infrequent_title), false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -11,7 +11,7 @@ public class InfrequentReading extends Reading {
|
|||
protected void onCreate(Bundle savedInstanceBundle) {
|
||||
super.onCreate(savedInstanceBundle);
|
||||
|
||||
UIUtils.setCustomActionBar(this, R.drawable.ak_icon_allstories, getResources().getString(R.string.infrequent_title));
|
||||
UIUtils.setupToolbar(this, R.drawable.ak_icon_allstories, getResources().getString(R.string.infrequent_title), false);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,6 +5,8 @@ import android.graphics.Bitmap;
|
|||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager;
|
||||
|
||||
import androidx.appcompat.widget.PopupMenu;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
@ -17,7 +19,6 @@ import android.view.MenuItem;
|
|||
import android.view.View;
|
||||
import android.view.View.OnKeyListener;
|
||||
import android.widget.AbsListView;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.SeekBar;
|
||||
import android.widget.SeekBar.OnSeekBarChangeListener;
|
||||
|
||||
|
@ -58,8 +59,6 @@ public class Main extends NbActivity implements StateChangedListener, SwipeRefre
|
|||
binding = ActivityMainBinding.inflate(getLayoutInflater());
|
||||
setContentView(binding.getRoot());
|
||||
|
||||
getActionBar().hide();
|
||||
|
||||
// set the status bar to an generic loading message when the activity is first created so
|
||||
// that something is displayed while the service warms up
|
||||
binding.mainSyncStatus.setText(R.string.loading);
|
||||
|
@ -108,30 +107,11 @@ public class Main extends NbActivity implements StateChangedListener, SwipeRefre
|
|||
|
||||
FeedUtils.currentFolderName = null;
|
||||
|
||||
binding.mainMenuButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
onClickMenuButton();
|
||||
}
|
||||
});
|
||||
binding.mainAddButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
onClickAddButton();
|
||||
}
|
||||
});
|
||||
binding.mainProfileButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
onClickProfileButton();
|
||||
}
|
||||
});
|
||||
binding.mainUserImage.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
onClickUserButton();
|
||||
}
|
||||
});
|
||||
binding.mainMenuButton.setOnClickListener(v -> onClickMenuButton());
|
||||
binding.mainAddButton.setOnClickListener(v -> onClickAddButton());
|
||||
binding.mainProfileButton.setOnClickListener(v -> onClickProfileButton());
|
||||
binding.mainUserImage.setOnClickListener(v -> onClickUserButton());
|
||||
binding.mainSearchFeedsButton.setOnClickListener(v -> onClickSearchFeedsButton());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -280,21 +260,6 @@ public class Main extends NbActivity implements StateChangedListener, SwipeRefre
|
|||
loginAsItem.setVisible(false);
|
||||
}
|
||||
|
||||
MenuItem feedbackItem = menu.findItem(R.id.menu_feedback);
|
||||
if (AppConstants.ENABLE_FEEDBACK) {
|
||||
feedbackItem.setTitle(feedbackItem.getTitle() + " (v" + PrefsUtils.getVersion(this) + ")");
|
||||
} else {
|
||||
feedbackItem.setVisible(false);
|
||||
}
|
||||
|
||||
if ( (folderFeedList.currentState == StateFilter.ALL) ||
|
||||
(folderFeedList.currentState == StateFilter.SOME) ||
|
||||
(folderFeedList.currentState == StateFilter.BEST) ) {
|
||||
menu.findItem(R.id.menu_search_feeds).setVisible(true);
|
||||
} else {
|
||||
menu.findItem(R.id.menu_search_feeds).setVisible(false);
|
||||
}
|
||||
|
||||
ThemeValue themeValue = PrefsUtils.getSelectedTheme(this);
|
||||
if (themeValue == ThemeValue.LIGHT) {
|
||||
menu.findItem(R.id.menu_theme_light).setChecked(true);
|
||||
|
@ -314,23 +279,7 @@ public class Main extends NbActivity implements StateChangedListener, SwipeRefre
|
|||
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
if (item.getItemId() == R.id.menu_refresh) {
|
||||
onRefresh();
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.menu_search_feeds) {
|
||||
if (binding.feedlistSearchQuery.getVisibility() != View.VISIBLE) {
|
||||
binding.feedlistSearchQuery.setVisibility(View.VISIBLE);
|
||||
binding.feedlistSearchQuery.requestFocus();
|
||||
} else {
|
||||
binding.feedlistSearchQuery.setText("");
|
||||
binding.feedlistSearchQuery.setVisibility(View.GONE);
|
||||
checkSearchQuery();
|
||||
}
|
||||
} else if (item.getItemId() == R.id.menu_add_feed) {
|
||||
Intent i = new Intent(this, SearchForFeeds.class);
|
||||
startActivity(i);
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.menu_logout) {
|
||||
if (item.getItemId() == R.id.menu_logout) {
|
||||
DialogFragment newFragment = new LogoutDialogFragment();
|
||||
newFragment.show(getSupportFragmentManager(), "dialog");
|
||||
} else if (item.getItemId() == R.id.menu_settings) {
|
||||
|
@ -400,6 +349,17 @@ public class Main extends NbActivity implements StateChangedListener, SwipeRefre
|
|||
startActivity(i);
|
||||
}
|
||||
|
||||
private void onClickSearchFeedsButton() {
|
||||
if (binding.feedlistSearchQuery.getVisibility() != View.VISIBLE) {
|
||||
binding.feedlistSearchQuery.setVisibility(View.VISIBLE);
|
||||
binding.feedlistSearchQuery.requestFocus();
|
||||
} else {
|
||||
binding.feedlistSearchQuery.setText("");
|
||||
binding.feedlistSearchQuery.setVisibility(View.GONE);
|
||||
checkSearchQuery();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScrollStateChanged(AbsListView absListView, int i) {
|
||||
// not required
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.newsblur.activity;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Intent;
|
||||
import android.database.Cursor;
|
||||
import android.text.TextUtils;
|
||||
|
@ -10,6 +9,7 @@ import android.view.View;
|
|||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.newsblur.R;
|
||||
|
@ -59,6 +59,7 @@ public class MuteConfig extends FeedChooser implements MuteConfigAdapter.FeedSta
|
|||
void bindLayout() {
|
||||
binding = ActivityMuteConfigBinding.inflate(getLayoutInflater());
|
||||
setContentView(binding.getRoot());
|
||||
UIUtils.setupToolbar(this, R.drawable.logo, getString(R.string.mute_sites), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package com.newsblur.activity;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import android.widget.Toast;
|
||||
|
||||
|
@ -15,7 +17,7 @@ import java.util.ArrayList;
|
|||
* The base class for all Activities in the NewsBlur app. Handles enforcement of
|
||||
* login state and tracking of sync/update broadcasts.
|
||||
*/
|
||||
public class NbActivity extends FragmentActivity {
|
||||
public class NbActivity extends AppCompatActivity {
|
||||
|
||||
public static final int UPDATE_DB_READY = (1<<0);
|
||||
public static final int UPDATE_METADATA = (1<<1);
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.newsblur.activity;
|
||||
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Paint;
|
||||
import android.net.Uri;
|
||||
|
@ -8,13 +7,10 @@ import android.os.AsyncTask;
|
|||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.text.util.Linkify;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.content.res.ResourcesCompat;
|
||||
|
||||
import com.android.billingclient.api.AcknowledgePurchaseParams;
|
||||
import com.android.billingclient.api.AcknowledgePurchaseResponseListener;
|
||||
|
@ -41,6 +37,7 @@ import com.newsblur.util.UIUtils;
|
|||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Currency;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
@ -127,7 +124,7 @@ public class Premium extends NbActivity {
|
|||
}
|
||||
|
||||
private void setupUI() {
|
||||
UIUtils.setCustomActionBar(this, R.drawable.logo, getString(R.string.premium_toolbar_title));
|
||||
UIUtils.setupToolbar(this, R.drawable.logo, getString(R.string.premium_toolbar_title), true);
|
||||
|
||||
// linkify before setting the string resource
|
||||
BetterLinkMovementMethod.linkify(Linkify.WEB_URLS, binding.textPolicies)
|
||||
|
@ -230,10 +227,9 @@ public class Premium extends NbActivity {
|
|||
}
|
||||
|
||||
private void showSubscriptionDetails() {
|
||||
// handling dynamic currency and pricing for 1Y subscriptions
|
||||
String currencySymbol = subscriptionDetails.getPrice().substring(0, 1);
|
||||
String priceString = subscriptionDetails.getPrice().substring(1);
|
||||
double price = Double.parseDouble(priceString);
|
||||
double price = subscriptionDetails.getPriceAmountMicros() / 1000f / 1000f;
|
||||
Currency currency = Currency.getInstance(subscriptionDetails.getPriceCurrencyCode());
|
||||
String currencySymbol = currency.getSymbol(Locale.getDefault());
|
||||
StringBuilder pricingText = new StringBuilder();
|
||||
pricingText.append(subscriptionDetails.getPrice());
|
||||
pricingText.append(" per year (");
|
||||
|
|
|
@ -13,6 +13,7 @@ import com.newsblur.domain.UserDetails;
|
|||
import com.newsblur.fragment.ProfileDetailsFragment;
|
||||
import com.newsblur.network.APIManager;
|
||||
import com.newsblur.util.PrefsUtils;
|
||||
import com.newsblur.util.UIUtils;
|
||||
|
||||
public class Profile extends NbActivity {
|
||||
|
||||
|
@ -28,7 +29,7 @@ public class Profile extends NbActivity {
|
|||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_profile);
|
||||
getActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
UIUtils.setupToolbar(this, R.drawable.logo, getString(R.string.profile), true);
|
||||
apiManager = new APIManager(this);
|
||||
if (savedInstanceState == null) {
|
||||
userId = getIntent().getStringExtra(USER_ID);
|
||||
|
|
|
@ -11,7 +11,7 @@ public class ReadStoriesItemsList extends ItemsList {
|
|||
protected void onCreate(Bundle bundle) {
|
||||
super.onCreate(bundle);
|
||||
|
||||
UIUtils.setCustomActionBar(this, R.drawable.g_icn_unread_double, getResources().getString(R.string.read_stories_title));
|
||||
UIUtils.setupToolbar(this, R.drawable.g_icn_unread_double, getResources().getString(R.string.read_stories_title), false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -11,7 +11,7 @@ public class ReadStoriesReading extends Reading {
|
|||
protected void onCreate(Bundle savedInstanceBundle) {
|
||||
super.onCreate(savedInstanceBundle);
|
||||
|
||||
UIUtils.setCustomActionBar(this, R.drawable.g_icn_unread, getResources().getString(R.string.read_stories_title));
|
||||
UIUtils.setupToolbar(this, R.drawable.g_icn_unread, getResources().getString(R.string.read_stories_title), false);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -53,7 +53,6 @@ public abstract class Reading extends NbActivity implements OnPageChangeListener
|
|||
private static final String BUNDLE_POSITION = "position";
|
||||
private static final String BUNDLE_STARTING_UNREAD = "starting_unread";
|
||||
private static final String BUNDLE_SELECTED_FEED_VIEW = "selectedFeedView";
|
||||
private static final String BUNDLE_IS_FULLSCREEN = "is_fullscreen";
|
||||
|
||||
/** special value for starting story hash that jumps to the first unread. */
|
||||
public static final String FIND_FIRST_UNREAD = "FIND_FIRST_UNREAD";
|
||||
|
@ -143,14 +142,6 @@ public abstract class Reading extends NbActivity implements OnPageChangeListener
|
|||
intelState = PrefsUtils.getStateFilter(this);
|
||||
volumeKeyNavigation = PrefsUtils.getVolumeKeyNavigation(this);
|
||||
|
||||
// were we fullscreen before rotation?
|
||||
if ((savedInstanceBundle != null) && savedInstanceBundle.containsKey(BUNDLE_IS_FULLSCREEN)) {
|
||||
boolean isFullscreen = savedInstanceBundle.getBoolean(BUNDLE_IS_FULLSCREEN, false);
|
||||
if (isFullscreen) {
|
||||
ViewUtils.hideSystemUI(getWindow().getDecorView());
|
||||
}
|
||||
}
|
||||
|
||||
// this value is expensive to compute but doesn't change during a single runtime
|
||||
this.overlayRangeTopPx = (float) UIUtils.dp2px(this, OVERLAY_RANGE_TOP_DP);
|
||||
this.overlayRangeBotPx = (float) UIUtils.dp2px(this, OVERLAY_RANGE_BOT_DP);
|
||||
|
@ -199,10 +190,6 @@ public abstract class Reading extends NbActivity implements OnPageChangeListener
|
|||
if (startingUnreadCount != 0) {
|
||||
outState.putInt(BUNDLE_STARTING_UNREAD, startingUnreadCount);
|
||||
}
|
||||
|
||||
if (ViewUtils.isSystemUIHidden(getWindow().getDecorView())) {
|
||||
outState.putBoolean(BUNDLE_IS_FULLSCREEN, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -375,29 +362,12 @@ public abstract class Reading extends NbActivity implements OnPageChangeListener
|
|||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
super.onCreateOptionsMenu(menu);
|
||||
MenuInflater inflater = getMenuInflater();
|
||||
inflater.inflate(R.menu.reading, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||
super.onPrepareOptionsMenu(menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == android.R.id.home) {
|
||||
finish();
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.menu_reading_fullscreen) {
|
||||
ViewUtils.hideSystemUI(getWindow().getDecorView());
|
||||
return true;
|
||||
} else {
|
||||
} else {
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ public class SavedStoriesItemsList extends ItemsList {
|
|||
if (fs.getSingleSavedTag() != null) {
|
||||
title = title + " - " + fs.getSingleSavedTag();
|
||||
}
|
||||
UIUtils.setCustomActionBar(this, R.drawable.clock, title);
|
||||
UIUtils.setupToolbar(this, R.drawable.clock, title, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -15,7 +15,7 @@ public class SavedStoriesReading extends Reading {
|
|||
if (fs.getSingleSavedTag() != null) {
|
||||
title = title + " - " + fs.getSingleSavedTag();
|
||||
}
|
||||
UIUtils.setCustomActionBar(this, R.drawable.clock, title);
|
||||
UIUtils.setupToolbar(this, R.drawable.clock, title, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ import com.newsblur.domain.FeedResult;
|
|||
import com.newsblur.fragment.AddFeedFragment;
|
||||
import com.newsblur.network.SearchAsyncTaskLoader;
|
||||
import com.newsblur.network.SearchLoaderResponse;
|
||||
import com.newsblur.util.UIUtils;
|
||||
|
||||
// TODO: this activity's use of the inbuilt activity search facility as well as an improper use of a loader to
|
||||
// make network requests makes it easily lose state, lack non-legacy progress indication, and generally
|
||||
|
@ -46,11 +47,10 @@ public class SearchForFeeds extends NbActivity implements LoaderCallbacks<Search
|
|||
@Override
|
||||
protected void onCreate(Bundle arg0) {
|
||||
super.onCreate(arg0);
|
||||
getActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
setTitle(R.string.title_feed_search);
|
||||
|
||||
setContentView(R.layout.activity_feed_search);
|
||||
|
||||
UIUtils.setupToolbar(this, R.drawable.logo, getString(R.string.title_feed_search), true);
|
||||
|
||||
TextView emptyView = (TextView) findViewById(R.id.empty_view);
|
||||
resultsList = (ListView) findViewById(R.id.feed_result_list);
|
||||
resultsList.setEmptyView(emptyView);
|
||||
|
|
|
@ -1,27 +1,31 @@
|
|||
package com.newsblur.activity;
|
||||
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.newsblur.R;
|
||||
import com.newsblur.databinding.ActivitySettingsBinding;
|
||||
import com.newsblur.fragment.SettingsFragment;
|
||||
import com.newsblur.util.PrefConstants;
|
||||
import com.newsblur.util.PrefsUtils;
|
||||
import com.newsblur.util.UIUtils;
|
||||
|
||||
public class Settings extends FragmentActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
public class Settings extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
PrefsUtils.applyThemePreference(this);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
ActivitySettingsBinding binding = ActivitySettingsBinding.inflate(getLayoutInflater());
|
||||
setContentView(binding.getRoot());
|
||||
UIUtils.setupToolbar(this, R.drawable.logo, getString(R.string.settings), true);
|
||||
|
||||
getActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
SettingsFragment fragment = new SettingsFragment();
|
||||
getFragmentManager().beginTransaction().replace(android.R.id.content, fragment).commit();
|
||||
getSupportFragmentManager()
|
||||
.beginTransaction()
|
||||
.replace(binding.container.getId(), new SettingsFragment())
|
||||
.commit();
|
||||
|
||||
SharedPreferences prefs = getSharedPreferences(PrefConstants.PREFERENCES, 0);
|
||||
prefs.registerOnSharedPreferenceChangeListener(this);
|
||||
|
@ -29,21 +33,10 @@ public class Settings extends FragmentActivity implements SharedPreferences.OnSh
|
|||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
|
||||
SharedPreferences prefs = getSharedPreferences(PrefConstants.PREFERENCES, 0);
|
||||
prefs.unregisterOnSharedPreferenceChangeListener(this);
|
||||
}
|
||||
super.onDestroy();
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case android.R.id.home:
|
||||
finish();
|
||||
return true;
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -16,7 +16,7 @@ public class SocialFeedItemsList extends ItemsList {
|
|||
socialFeed = (SocialFeed) getIntent().getSerializableExtra(EXTRA_SOCIAL_FEED);
|
||||
super.onCreate(bundle);
|
||||
|
||||
UIUtils.setCustomActionBar(this, socialFeed.photoUrl, socialFeed.feedTitle);
|
||||
UIUtils.setupToolbar(this, socialFeed.photoUrl, socialFeed.feedTitle, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -13,7 +13,7 @@ public class SocialFeedReading extends Reading {
|
|||
super.onCreate(savedInstanceBundle);
|
||||
SocialFeed socialFeed = FeedUtils.dbHelper.getSocialFeed(fs.getSingleSocialFeed().getKey());
|
||||
if (socialFeed == null) finish(); // don't open fatally stale intents
|
||||
UIUtils.setCustomActionBar(this, socialFeed.photoUrl, socialFeed.feedTitle);
|
||||
UIUtils.setupToolbar(this, socialFeed.photoUrl, socialFeed.feedTitle, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ import com.newsblur.databinding.ActivityWidgetConfigBinding;
|
|||
import com.newsblur.domain.Feed;
|
||||
import com.newsblur.domain.Folder;
|
||||
import com.newsblur.util.PrefsUtils;
|
||||
import com.newsblur.util.UIUtils;
|
||||
import com.newsblur.widget.WidgetUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -62,6 +63,7 @@ public class WidgetConfig extends FeedChooser {
|
|||
void bindLayout() {
|
||||
binding = ActivityWidgetConfigBinding.inflate(getLayoutInflater());
|
||||
setContentView(binding.getRoot());
|
||||
UIUtils.setupToolbar(this, R.drawable.logo, getString(R.string.widget), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -202,6 +202,12 @@ public class BlurDatabaseHelper {
|
|||
synchronized (RW_MUTEX) {dbRW.execSQL(q);}
|
||||
}
|
||||
|
||||
public void deleteStories() {
|
||||
vacuum();
|
||||
synchronized (RW_MUTEX) {dbRW.delete(DatabaseConstants.STORY_TABLE, null, null);}
|
||||
synchronized (RW_MUTEX) {dbRW.delete(DatabaseConstants.STORY_TEXT_TABLE, null, null);}
|
||||
}
|
||||
|
||||
public Feed getFeed(String feedId) {
|
||||
Cursor c = dbRO.query(DatabaseConstants.FEED_TABLE, null, DatabaseConstants.FEED_ID + " = ?", new String[] {feedId}, null, null, null);
|
||||
Feed result = null;
|
||||
|
|
|
@ -107,6 +107,7 @@ public class DatabaseConstants {
|
|||
public static final String STORY_SEARCH_HIT = "search_hit";
|
||||
public static final String STORY_THUMBNAIL_URL = "thumbnail_url";
|
||||
public static final String STORY_INFREQUENT = "infrequent";
|
||||
public static final String STORY_HAS_MODIFICATIONS = "has_modifications";
|
||||
|
||||
public static final String READING_SESSION_TABLE = "reading_session";
|
||||
public static final String READING_SESSION_STORY_HASH = "session_story_hash";
|
||||
|
@ -272,7 +273,8 @@ public class DatabaseConstants {
|
|||
STORY_IMAGE_URLS + TEXT + ", " +
|
||||
STORY_LAST_READ_DATE + INTEGER + ", " +
|
||||
STORY_SEARCH_HIT + TEXT + ", " +
|
||||
STORY_THUMBNAIL_URL + TEXT +
|
||||
STORY_THUMBNAIL_URL + TEXT + ", " +
|
||||
STORY_HAS_MODIFICATIONS + INTEGER +
|
||||
")";
|
||||
|
||||
static final String READING_SESSION_SQL = "CREATE TABLE " + READING_SESSION_TABLE + " (" +
|
||||
|
@ -344,7 +346,7 @@ public class DatabaseConstants {
|
|||
STORY_INTELLIGENCE_AUTHORS, STORY_INTELLIGENCE_FEED, STORY_INTELLIGENCE_TAGS, STORY_INTELLIGENCE_TOTAL,
|
||||
STORY_INTELLIGENCE_TITLE, STORY_PERMALINK, STORY_READ, STORY_STARRED, STORY_STARRED_DATE, STORY_TAGS, STORY_USER_TAGS, STORY_TITLE,
|
||||
STORY_SOCIAL_USER_ID, STORY_SOURCE_USER_ID, STORY_SHARED_USER_IDS, STORY_FRIEND_USER_IDS, STORY_HASH,
|
||||
STORY_LAST_READ_DATE, STORY_THUMBNAIL_URL,
|
||||
STORY_LAST_READ_DATE, STORY_THUMBNAIL_URL, STORY_HAS_MODIFICATIONS,
|
||||
};
|
||||
|
||||
private static final String STORY_COLUMNS =
|
||||
|
|
|
@ -89,6 +89,9 @@ public class Story implements Serializable {
|
|||
@SerializedName("secure_image_thumbnails")
|
||||
public Map<String, String> secureImageThumbnails;
|
||||
|
||||
@SerializedName("has_modifications")
|
||||
public boolean hasModifications;
|
||||
|
||||
// NOTE: this is parsed and saved to the DB, but is *not* generally un-thawed when stories are fetched back from the DB
|
||||
@SerializedName("image_urls")
|
||||
public String[] imageUrls;
|
||||
|
@ -149,6 +152,7 @@ public class Story implements Serializable {
|
|||
values.put(DatabaseConstants.STORY_SEARCH_HIT, searchHit);
|
||||
values.put(DatabaseConstants.STORY_THUMBNAIL_URL, thumbnailUrl);
|
||||
values.put(DatabaseConstants.STORY_INFREQUENT, infrequent);
|
||||
values.put(DatabaseConstants.STORY_HAS_MODIFICATIONS, hasModifications);
|
||||
return values;
|
||||
}
|
||||
|
||||
|
@ -180,6 +184,7 @@ public class Story implements Serializable {
|
|||
story.lastReadTimestamp = cursor.getLong(cursor.getColumnIndex(DatabaseConstants.STORY_LAST_READ_DATE));
|
||||
story.sharedTimestamp = cursor.getLong(cursor.getColumnIndex(DatabaseConstants.STORY_SHARED_DATE));
|
||||
story.thumbnailUrl = cursor.getString(cursor.getColumnIndex(DatabaseConstants.STORY_THUMBNAIL_URL));
|
||||
story.hasModifications = cursor.getInt(cursor.getColumnIndex(DatabaseConstants.STORY_HAS_MODIFICATIONS)) > 0;
|
||||
return story;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
package com.newsblur.fragment;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.Intent;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
package com.newsblur.fragment;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
|
||||
import com.newsblur.R;
|
||||
|
|
|
@ -6,10 +6,11 @@ import java.util.List;
|
|||
import java.util.Set;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
|
|
|
@ -11,10 +11,11 @@ import com.newsblur.util.FeedUtils;
|
|||
import com.newsblur.util.UIUtils;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
|
||||
public class DeleteFeedFragment extends DialogFragment {
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
package com.newsblur.fragment;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import android.text.TextUtils;
|
||||
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
package com.newsblur.fragment;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue