
When adding repositories using the Manage Repos activity, firstly look for an /index.jar appended on the URL provided by the user. If that doesn't work (HTTP status code other than 200) then it will try /fdroid/repo/index.jar, then /repo/index.jar. If it can't establish a connection to the server, or if none of the above attempts results in a 200, then the path provided by the user is kept (even though we have a hunch it might be wrong). This is to cover for the case where people arn't connected to the net. Another way to deal with no internet connectivity is provided by a "Skip" button on the dialog while searching for the index.jar. The searching for index.jar is done by doing a HTTP HEAD request, so the entire jar needn't be downloaded. Finally, to make this happen in a clean sort of way, I refactored the ManageReposActivity a little bit to encapsulate all of the add repo dialog handling into a subclass. This way, the outer class doesn't need to know things like: Is the dialog showing, what state is it in, is the background task to search for index.jar files running, how and when to cancel that task, etc.
82 lines
3.1 KiB
XML
82 lines
3.1 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:tools="http://schemas.android.com/tools"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:padding="6dp">
|
|
|
|
<LinearLayout
|
|
android:id="@+id/add_repo_form"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical">
|
|
|
|
<TextView
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/repo_add_url" />
|
|
|
|
<EditText
|
|
android:id="@+id/edit_uri"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:inputType="textUri"
|
|
android:maxLines="2"
|
|
android:text="@string/https" />
|
|
|
|
<TextView
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/repo_add_fingerprint" />
|
|
|
|
<EditText
|
|
android:id="@+id/edit_fingerprint"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:digits="0123456789ABCDEFabcedf: "
|
|
android:inputType="textNoSuggestions"
|
|
android:maxLines="3"
|
|
android:typeface="monospace" />
|
|
|
|
<TextView
|
|
android:id="@+id/overwrite_message"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:drawableLeft="@android:drawable/ic_dialog_alert"
|
|
android:drawableStart="@android:drawable/ic_dialog_alert"
|
|
android:drawablePadding="20dp"
|
|
android:padding="20dp"
|
|
android:text="@string/repo_delete_to_overwrite"
|
|
android:textAppearance="@android:style/TextAppearance.Medium"
|
|
android:visibility="gone" />
|
|
|
|
</LinearLayout>
|
|
|
|
<TextView
|
|
android:padding="10dp"
|
|
android:textSize="16sp"
|
|
android:id="@+id/text_searching_for_repo"
|
|
android:gravity="center"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
tools:text="Searching for repository at\nhttps://www.example.com/fdroid/repo/" />
|
|
|
|
</RelativeLayout><!--
|
|
* Copyright (C) 2009 Roberto Jacinto
|
|
* roberto.jacinto@caixamagica.pt
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
-->
|