Преглед на файлове

Merge pull request #1003 from nextcloud/bumpWebRtcLib

bump google-webrtc to 1.0.32006
Marcel Hibbe преди 4 години
родител
ревизия
9eee09007a
променени са 22 файла, в които са добавени 64 реда и са изтрити 58 реда
  1. 2 1
      app/build.gradle
  2. 1 1
      app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java
  3. 3 3
      app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.kt
  4. 5 5
      app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.kt
  5. 3 8
      app/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt
  6. 6 0
      app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java
  7. 19 10
      app/src/main/java/com/nextcloud/talk/controllers/CallController.java
  8. 1 1
      app/src/main/java/com/nextcloud/talk/controllers/CallNotificationController.java
  9. 1 1
      app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt
  10. 2 2
      app/src/main/java/com/nextcloud/talk/controllers/base/ButterKnifeController.kt
  11. 1 1
      app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt
  12. 6 6
      app/src/main/java/com/nextcloud/talk/ui/dialog/AttachmentDialog.kt
  13. 1 2
      app/src/main/java/com/nextcloud/talk/utils/ApiUtils.java
  14. 4 6
      app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java
  15. 1 1
      app/src/main/java/com/nextcloud/talk/utils/NotificationUtils.kt
  16. 0 1
      app/src/main/res/layout/item_message_quote.xml
  17. 2 1
      drawable_resources/icon-background.svg
  18. 2 1
      drawable_resources/icon-foreground.svg
  19. 1 2
      drawable_resources/other/file-icon-black-24h.svg
  20. 1 2
      drawable_resources/other/file-icon.svg
  21. 1 2
      drawable_resources/other/file-password-request.svg
  22. 1 1
      scripts/analysis/lint-results.txt

+ 2 - 1
app/build.gradle

@@ -202,7 +202,7 @@ dependencies {
     implementation 'com.github.HITGIF:TextFieldBoxes:1.4.5'
     implementation 'eu.davidea:flexible-adapter:5.1.0'
     implementation 'eu.davidea:flexible-adapter-ui:1.0.0'
-    implementation 'org.webrtc:google-webrtc:1.0.23295'
+    implementation 'org.webrtc:google-webrtc:1.0.32006'
     implementation "org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}"
     implementation 'com.yarolegovich:lovely-dialog:1.1.0'
     implementation 'com.yarolegovich:lovelyinput:1.0.9'
@@ -210,6 +210,7 @@ dependencies {
     implementation 'me.zhanghai.android.effortlesspermissions:library:1.1.0'
     implementation 'org.apache.commons:commons-lang3:3.9'
     implementation 'com.github.wooplr:Spotlight:1.3'
+    implementation 'com.google.code.findbugs:jsr305:2.0.1'
     implementation('com.github.mario:chatkit:c6a61767291ddb212a2f4f792a2b6aaf295e69a5', {
         exclude group: 'com.facebook.fresco'
     })

+ 1 - 1
app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java

@@ -40,7 +40,7 @@ import com.nextcloud.talk.utils.DisplayUtils;
 import java.util.List;
 import java.util.regex.Pattern;
 
-import javax.annotation.Nullable;
+import androidx.annotation.Nullable;
 
 import androidx.emoji.widget.EmojiTextView;
 import butterknife.BindView;

+ 3 - 3
app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.kt

@@ -160,7 +160,7 @@ class MagicIncomingTextMessageViewHolder(incomingView: View) : MessageHolders
 
         val resources = itemView.resources
 
-        val bg_bubble_color = if (message.isDeleted) {
+        val bgBubbleColor = if (message.isDeleted) {
             resources.getColor(R.color.bg_message_list_incoming_bubble_deleted)
         } else {
             resources.getColor(R.color.bg_message_list_incoming_bubble)
@@ -173,9 +173,9 @@ class MagicIncomingTextMessageViewHolder(incomingView: View) : MessageHolders
         }
 
         val bubbleDrawable = DisplayUtils.getMessageSelector(
-                bg_bubble_color,
+                bgBubbleColor,
                 resources.getColor(R.color.transparent),
-                bg_bubble_color, bubbleResource
+                bgBubbleColor, bubbleResource
         )
         ViewCompat.setBackground(bubble, bubbleDrawable)
 

+ 5 - 5
app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.kt

@@ -136,23 +136,23 @@ class MagicOutcomingTextMessageViewHolder(itemView: View) : OutcomingTextMessage
             realView.isSelected = true
         }
         val resources = sharedApplication!!.resources
-        val bg_bubble_color = if (message.isDeleted) {
+        val bgBubbleColor = if (message.isDeleted) {
             resources.getColor(R.color.bg_message_list_outcoming_bubble_deleted)
         } else {
             resources.getColor(R.color.bg_message_list_outcoming_bubble)
         }
         if (message.isGrouped) {
             val bubbleDrawable = getMessageSelector(
-                    bg_bubble_color,
+                    bgBubbleColor,
                     resources.getColor(R.color.transparent),
-                    bg_bubble_color,
+                    bgBubbleColor,
                     R.drawable.shape_grouped_outcoming_message)
             ViewCompat.setBackground(bubble, bubbleDrawable)
         } else {
             val bubbleDrawable = getMessageSelector(
-                    bg_bubble_color,
+                    bgBubbleColor,
                     resources.getColor(R.color.transparent),
-                    bg_bubble_color,
+                    bgBubbleColor,
                     R.drawable.shape_outcoming_message)
             ViewCompat.setBackground(bubble, bubbleDrawable)
         }

+ 3 - 8
app/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt

@@ -25,10 +25,9 @@ import android.os.Build
 import android.os.Build.VERSION.SDK_INT
 import android.os.Build.VERSION_CODES.P
 import android.util.Log
+import androidx.appcompat.app.AppCompatDelegate
 import androidx.emoji.bundled.BundledEmojiCompatConfig
 import androidx.emoji.text.EmojiCompat
-
-import androidx.appcompat.app.AppCompatDelegate
 import androidx.lifecycle.LifecycleObserver
 import androidx.multidex.MultiDex
 import androidx.multidex.MultiDexApplication
@@ -66,7 +65,6 @@ import com.nextcloud.talk.utils.preferences.AppPreferences
 import com.nextcloud.talk.webrtc.MagicWebRTCUtils
 import com.vanniktech.emoji.EmojiManager
 import com.vanniktech.emoji.googlecompat.GoogleCompatEmojiProvider
-
 import de.cotech.hw.SecurityKeyManager
 import de.cotech.hw.SecurityKeyManagerConfig
 import okhttp3.OkHttpClient
@@ -74,11 +72,10 @@ import org.conscrypt.Conscrypt
 import org.webrtc.PeerConnectionFactory
 import org.webrtc.voiceengine.WebRtcAudioManager
 import org.webrtc.voiceengine.WebRtcAudioUtils
-
-import javax.inject.Inject
-import javax.inject.Singleton
 import java.security.Security
 import java.util.concurrent.TimeUnit
+import javax.inject.Inject
+import javax.inject.Singleton
 
 @AutoComponent(modules = [BusModule::class, ContextModule::class, DatabaseModule::class, RestModule::class, UserModule::class, ArbitraryStorageModule::class])
 @Singleton
@@ -108,9 +105,7 @@ class NextcloudTalkApplication : MultiDexApplication(), LifecycleObserver {
                 WebRtcAudioManager.setBlacklistDeviceForOpenSLESUsage(true)
             }
 
-
             PeerConnectionFactory.initialize(PeerConnectionFactory.InitializationOptions.builder(this)
-                    .setEnableVideoHwAcceleration(MagicWebRTCUtils.shouldEnableVideoHardwareAcceleration())
                     .createInitializationOptions())
         } catch (e: UnsatisfiedLinkError) {
             Log.w(TAG, e)

+ 6 - 0
app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java

@@ -20,6 +20,7 @@
 
 package com.nextcloud.talk.controllers;
 
+import android.annotation.SuppressLint;
 import android.content.pm.ActivityInfo;
 import android.os.Bundle;
 import android.os.Handler;
@@ -265,6 +266,7 @@ public class AccountVerificationController extends BaseController {
                         disposables.add(d);
                     }
 
+                    @SuppressLint("SetTextI18n")
                     @Override
                     public void onNext(UserEntity userEntity) {
                         internalAccountId = userEntity.getId();
@@ -278,6 +280,7 @@ public class AccountVerificationController extends BaseController {
                         }
                     }
 
+                    @SuppressLint("SetTextI18n")
                     @Override
                     public void onError(Throwable e) {
                         progressText.setText(progressText.getText().toString() +
@@ -305,6 +308,7 @@ public class AccountVerificationController extends BaseController {
                         disposables.add(d);
                     }
 
+                    @SuppressLint("SetTextI18n")
                     @Override
                     public void onNext(UserProfileOverall userProfileOverall) {
                         String displayName = null;
@@ -329,6 +333,7 @@ public class AccountVerificationController extends BaseController {
                         }
                     }
 
+                    @SuppressLint("SetTextI18n")
                     @Override
                     public void onError(Throwable e) {
                         if (getActivity() != null) {
@@ -351,6 +356,7 @@ public class AccountVerificationController extends BaseController {
         WorkManager.getInstance().enqueue(pushRegistrationWork);
     }
 
+    @SuppressLint("SetTextI18n")
     @Subscribe(threadMode = ThreadMode.BACKGROUND)
     public void onMessageEvent(EventStatus eventStatus) {
         if (eventStatus.getEventType().equals(EventStatus.EventType.PUSH_REGISTRATION)) {

+ 19 - 10
app/src/main/java/com/nextcloud/talk/controllers/CallController.java

@@ -107,6 +107,8 @@ import org.webrtc.Camera1Enumerator;
 import org.webrtc.Camera2Enumerator;
 import org.webrtc.CameraEnumerator;
 import org.webrtc.CameraVideoCapturer;
+import org.webrtc.DefaultVideoDecoderFactory;
+import org.webrtc.DefaultVideoEncoderFactory;
 import org.webrtc.EglBase;
 import org.webrtc.IceCandidate;
 import org.webrtc.Logging;
@@ -116,6 +118,7 @@ import org.webrtc.PeerConnection;
 import org.webrtc.PeerConnectionFactory;
 import org.webrtc.RendererCommon;
 import org.webrtc.SessionDescription;
+import org.webrtc.SurfaceTextureHelper;
 import org.webrtc.SurfaceViewRenderer;
 import org.webrtc.VideoCapturer;
 import org.webrtc.VideoSource;
@@ -358,10 +361,15 @@ public class CallController extends BaseController {
 
         //Create a new PeerConnectionFactory instance.
         PeerConnectionFactory.Options options = new PeerConnectionFactory.Options();
-        peerConnectionFactory = PeerConnectionFactory.builder().createPeerConnectionFactory();
+        DefaultVideoEncoderFactory defaultVideoEncoderFactory = new DefaultVideoEncoderFactory(
+                rootEglBase.getEglBaseContext(),true,true);
+        DefaultVideoDecoderFactory defaultVideoDecoderFactory = new DefaultVideoDecoderFactory(rootEglBase.getEglBaseContext());
 
-        peerConnectionFactory.setVideoHwAccelerationOptions(rootEglBase.getEglBaseContext(),
-                rootEglBase.getEglBaseContext());
+        peerConnectionFactory = PeerConnectionFactory.builder()
+                .setOptions(options)
+                .setVideoEncoderFactory(defaultVideoEncoderFactory)
+                .setVideoDecoderFactory(defaultVideoDecoderFactory)
+                .createPeerConnectionFactory();
 
         //Create MediaConstraints - Will be useful for specifying video and audio constraints.
         audioConstraints = new MediaConstraints();
@@ -584,13 +592,14 @@ public class CallController extends BaseController {
 
         //Create a VideoSource instance
         if (videoCapturer != null) {
-            videoSource = peerConnectionFactory.createVideoSource(videoCapturer);
-            localVideoTrack = peerConnectionFactory.createVideoTrack("NCv0", videoSource);
-            localMediaStream.addTrack(localVideoTrack);
-            localVideoTrack.setEnabled(false);
-            localVideoTrack.addSink(pipVideoView);
-        }
-
+            SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create("CaptureThread", rootEglBase.getEglBaseContext());
+            videoSource = peerConnectionFactory.createVideoSource(false);
+            videoCapturer.initialize(surfaceTextureHelper, getApplicationContext(), videoSource.getCapturerObserver());
+        }
+        localVideoTrack = peerConnectionFactory.createVideoTrack("NCv0", videoSource);
+        localMediaStream.addTrack(localVideoTrack);
+        localVideoTrack.setEnabled(false);
+        localVideoTrack.addSink(pipVideoView);
     }
 
     private void microphoneInitialization() {

+ 1 - 1
app/src/main/java/com/nextcloud/talk/controllers/CallNotificationController.java

@@ -45,6 +45,7 @@ import android.widget.RelativeLayout;
 import android.widget.TextView;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.constraintlayout.widget.ConstraintLayout;
 
 import com.bluelinelabs.conductor.RouterTransaction;
@@ -89,7 +90,6 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.annotation.Nullable;
 import javax.inject.Inject;
 
 import autodagger.AutoInjector;

+ 1 - 1
app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt

@@ -747,7 +747,7 @@ class ChatController(args: Bundle) : BaseController(args), MessagesListAdapter
         }
     }
 
-    override fun getTitle(): String? {
+    override fun getTitle(): String {
         currentConversation?.displayName?.let {
             return EmojiCompat.get().process(it as CharSequence).toString()
         }

+ 2 - 2
app/src/main/java/com/nextcloud/talk/controllers/base/ButterKnifeController.kt

@@ -33,9 +33,9 @@ abstract class ButterKnifeController : Controller {
 
     private var unbinder: Unbinder? = null
 
-    constructor() {}
+    constructor()
 
-    constructor(args: Bundle) : super(args) {}
+    constructor(args: Bundle) : super(args)
 
     protected abstract fun inflateView(inflater: LayoutInflater, container: ViewGroup): View
 

+ 1 - 1
app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt

@@ -146,7 +146,7 @@ class UploadAndShareFilesWorker(val context: Context, workerParameters: WorkerPa
         WorkManager.getInstance().enqueue(shareWorker)
     }
 
-    private fun getFileName(uri: Uri): String? {
+    private fun getFileName(uri: Uri): String {
         var filename: String? = null
         if (uri.scheme == "content") {
             val cursor: Cursor? = context.contentResolver.query(uri, null, null, null, null)

+ 6 - 6
app/src/main/java/com/nextcloud/talk/ui/dialog/AttachmentDialog.kt

@@ -46,16 +46,16 @@ class AttachmentDialog(val activity: Activity, var chatController :ChatControlle
     private var unbinder: Unbinder? = null
 
     override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState);
-        val view = layoutInflater.inflate(R.layout.dialog_attachment, null);
-        setContentView(view);
+        super.onCreate(savedInstanceState)
+        val view = layoutInflater.inflate(R.layout.dialog_attachment, null)
+        setContentView(view)
 
-        window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+        window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
 
-        unbinder = ButterKnife.bind(this, view);
+        unbinder = ButterKnife.bind(this, view)
 
         attachFromLocal?.setOnClickListener {
-            chatController.sendSelectLocalFileIntent();
+            chatController.sendSelectLocalFileIntent()
             dismiss()
         }
         attachFromCloud?.setOnClickListener {

+ 1 - 2
app/src/main/java/com/nextcloud/talk/utils/ApiUtils.java

@@ -23,6 +23,7 @@ import android.net.Uri;
 import android.text.TextUtils;
 
 import androidx.annotation.DimenRes;
+import androidx.annotation.Nullable;
 
 import com.nextcloud.talk.BuildConfig;
 import com.nextcloud.talk.R;
@@ -32,8 +33,6 @@ import com.nextcloud.talk.models.RetrofitBucket;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.annotation.Nullable;
-
 import okhttp3.Credentials;
 
 public class ApiUtils {

+ 4 - 6
app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java

@@ -56,6 +56,7 @@ import androidx.annotation.ColorInt;
 import androidx.annotation.ColorRes;
 import androidx.annotation.DrawableRes;
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.XmlRes;
 import androidx.appcompat.widget.AppCompatDrawableManager;
 import androidx.core.content.ContextCompat;
@@ -96,9 +97,6 @@ import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
 public class DisplayUtils {
 
     private static final String TAG = "DisplayUtils";
@@ -107,7 +105,7 @@ public class DisplayUtils {
         SpannableString spannableString = new SpannableString(string);
         spannableString.setSpan(new ClickableSpan() {
             @Override
-            public void onClick(@Nonnull View widget) {
+            public void onClick(@NonNull View widget) {
                 Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                 browserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                 NextcloudTalkApplication.Companion.getSharedApplication().getApplicationContext().startActivity(browserIntent);
@@ -181,12 +179,12 @@ public class DisplayUtils {
             }
 
             @Override
-            public void onFinalImageSet(String id, @javax.annotation.Nullable Object imageInfo, @javax.annotation.Nullable Animatable animatable) {
+            public void onFinalImageSet(String id, @androidx.annotation.Nullable Object imageInfo, @androidx.annotation.Nullable Animatable animatable) {
                 updateViewSize((ImageInfo) imageInfo, draweeView);
             }
 
             @Override
-            public void onIntermediateImageSet(String id, @javax.annotation.Nullable Object imageInfo) {
+            public void onIntermediateImageSet(String id, @androidx.annotation.Nullable Object imageInfo) {
                 updateViewSize((ImageInfo) imageInfo, draweeView);
             }
 

+ 1 - 1
app/src/main/java/com/nextcloud/talk/utils/NotificationUtils.kt

@@ -43,7 +43,7 @@ object NotificationUtils {
     val NOTIFICATION_CHANNEL_MESSAGES_V3 = "NOTIFICATION_CHANNEL_MESSAGES_V3"
     val NOTIFICATION_CHANNEL_CALLS_V3 = "NOTIFICATION_CHANNEL_CALLS_V3"
 
-    fun getVibrationEffectForCalls(): LongArray? {
+    fun getVibrationEffectForCalls(): LongArray {
         return longArrayOf(0L, 400L, 800L, 600L, 800L, 800L, 800L, 1000L)
     }
 

+ 0 - 1
app/src/main/res/layout/item_message_quote.xml

@@ -82,7 +82,6 @@
             android:textSize="12sp"
             app:layout_alignSelf="center"
             tools:text="16:08" />
-        />
 
     </com.google.android.flexbox.FlexboxLayout>
 

+ 2 - 1
drawable_resources/icon-background.svg

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg width="100%" height="100%" viewBox="0 0 1344 1344" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+<svg width="100%" height="100%" viewBox="0 0 1344 1344" version="1.1" xmlns="http://www.w3.org/2000/svg" xml:space="preserve"
+    style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
     <rect x="-30.496" y="-19.169" width="1488.2" height="1362.73" style="fill:rgb(0,130,201);"/>
     <g id="g13338" transform="matrix(5.13054,0,0,5.13054,-5362.99,82.5409)">
         <path id="path256" d="M1298,54.1C1299.6,54.1 1300.9,52.8 1300.9,51.2C1300.9,49.6 1299.6,48.3 1298,48.3C1296.4,48.3 1295.1,49.6 1295.1,51.2C1295.1,52.8 1296.4,54.1 1298,54.1Z" style="fill:rgb(76,167,217);fill-rule:nonzero;"/>

+ 2 - 1
drawable_resources/icon-foreground.svg

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg width="100%" height="100%" viewBox="0 0 1344 1344" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
+<svg width="100%" height="100%" viewBox="0 0 1344 1344" version="1.1" xmlns="http://www.w3.org/2000/svg" xml:space="preserve"
+    style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
     <path id="path2" d="M671.959,347C493.701,347.003 347.017,493.69 347.017,671.951C347.017,671.954 347.017,671.957 347.017,671.96C347.017,850.222 493.701,996.909 671.959,996.912C731.433,996.791 789.748,980.344 840.521,949.372C880.458,965.242 969.914,1012.33 991.205,991.988C1013.45,970.741 965.085,870.743 953.49,833.584C981.82,784.426 996.787,728.695 996.898,671.958C996.895,493.7 850.215,347.016 671.96,347.011L671.959,347ZM671.997,470.543C782.529,470.543 873.483,561.5 873.483,672.035C873.476,782.565 782.524,873.512 671.996,873.512C561.469,873.512 470.517,782.565 470.509,672.035C470.509,672.035 470.509,672.035 470.509,672.035C470.509,561.5 561.464,470.543 671.996,470.543L671.997,470.543Z" style="fill:white;fill-rule:nonzero;"/>
 </svg>

+ 1 - 2
drawable_resources/other/file-icon-black-24h.svg

@@ -1,5 +1,4 @@
-
-<svg width="21px" height="24px" viewBox="0 0 21 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="21px" height="24px" viewBox="0 0 21 24" version="1.1" xmlns="http://www.w3.org/2000/svg">
     <defs></defs>
     <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="file-icon" fill-rule="nonzero" fill="#000000">

+ 1 - 2
drawable_resources/other/file-icon.svg

@@ -1,5 +1,4 @@
-
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg">
     <defs></defs>
     <g id="icon" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="vector" fill-rule="nonzero">

+ 1 - 2
drawable_resources/other/file-password-request.svg

@@ -1,5 +1,4 @@
-
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg">
     <defs></defs>
     <g id="Picon" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="file_password_request" fill-rule="nonzero">

+ 1 - 1
scripts/analysis/lint-results.txt

@@ -1,2 +1,2 @@
 DO NOT TOUCH; GENERATED BY DRONE
-      <span class="mdl-layout-title">Lint Report: 3 errors and 240 warnings</span>
+      <span class="mdl-layout-title">Lint Report: 3 errors and 239 warnings</span>