mirror of
https://github.com/nextcloud/talk-android
synced 2025-03-06 06:15:12 +00:00
parent
e1933e005c
commit
f3ce80e8ce
@ -138,7 +138,6 @@ dependencies {
|
||||
implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.7'
|
||||
|
||||
implementation 'com.github.Kennyc1012:BottomSheet:2.4.0'
|
||||
|
||||
testImplementation 'junit:junit:4.12'
|
||||
androidTestImplementation ('com.android.support.test.espresso:espresso-core:3.0.1', {
|
||||
exclude group: 'com.android.support', module: 'support-annotations'
|
||||
|
@ -774,7 +774,7 @@ public class CallActivity extends AppCompatActivity {
|
||||
}
|
||||
|
||||
private void joinRoomAndCall() {
|
||||
ncApi.joinRoom(credentials, ApiHelper.getUrlForRoom(userEntity.getBaseUrl(), roomToken))
|
||||
ncApi.joinRoom(credentials, ApiHelper.getUrlForRoomParticipants(userEntity.getBaseUrl(), roomToken))
|
||||
.subscribeOn(Schedulers.newThread())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.retry(3)
|
||||
@ -1093,7 +1093,7 @@ public class CallActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
public void onNext(GenericOverall genericOverall) {
|
||||
ncApi.leaveRoom(credentials, ApiHelper.getUrlForRoom(userEntity.getBaseUrl(), roomToken))
|
||||
ncApi.leaveRoom(credentials, ApiHelper.getUrlForRoomParticipants(userEntity.getBaseUrl(), roomToken))
|
||||
.subscribeOn(Schedulers.newThread())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Observer<GenericOverall>() {
|
||||
|
@ -23,6 +23,7 @@ package com.nextcloud.talk.adapters.items;
|
||||
import android.accounts.Account;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.view.View;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.RelativeLayout;
|
||||
@ -162,6 +163,8 @@ public class AdvancedUserItem extends AbstractFlexibleItem<AdvancedUserItem.User
|
||||
public ImageView avatarImageView;
|
||||
@BindView(R.id.linear_layout)
|
||||
LinearLayout linearLayout;
|
||||
@BindView(R.id.more_menu)
|
||||
ImageButton moreMenuButton;
|
||||
|
||||
/**
|
||||
* Default constructor.
|
||||
@ -169,6 +172,7 @@ public class AdvancedUserItem extends AbstractFlexibleItem<AdvancedUserItem.User
|
||||
UserItemViewHolder(View view, FlexibleAdapter adapter) {
|
||||
super(view, adapter);
|
||||
ButterKnife.bind(this, view);
|
||||
moreMenuButton.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -40,22 +40,24 @@ import eu.davidea.viewholders.FlexibleViewHolder;
|
||||
|
||||
public class MenuItem extends AbstractFlexibleItem<MenuItem.MenuItemViewHolder> {
|
||||
private String title;
|
||||
private int tag;
|
||||
|
||||
public MenuItem(String title) {
|
||||
public MenuItem(String title, int tag) {
|
||||
this.title = title;
|
||||
this.tag = tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (o instanceof MenuItem) {
|
||||
MenuItem inItem = (MenuItem) o;
|
||||
return title.equals(inItem.getModel());
|
||||
return tag == inItem.tag;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private String getModel() {
|
||||
return title;
|
||||
public int getTag() {
|
||||
return tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -44,6 +44,7 @@ import retrofit2.http.GET;
|
||||
import retrofit2.http.Header;
|
||||
import retrofit2.http.POST;
|
||||
import retrofit2.http.PUT;
|
||||
import retrofit2.http.Query;
|
||||
import retrofit2.http.QueryMap;
|
||||
import retrofit2.http.Url;
|
||||
|
||||
@ -115,19 +116,22 @@ public interface NcApi {
|
||||
*/
|
||||
|
||||
@DELETE
|
||||
Observable<Void> removeSelfFromRoom(@Header("Authorization") String authorization, @Url String url);
|
||||
Observable<GenericOverall> removeSelfFromRoom(@Header("Authorization") String authorization, @Url String url);
|
||||
|
||||
/*
|
||||
Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /room/roomToken/public
|
||||
*/
|
||||
@POST
|
||||
Observable<Void> makeRoomPublic(@Header("Authorization") String authorization, @Url String url);
|
||||
Observable<GenericOverall> makeRoomPublic(@Header("Authorization") String authorization, @Url String url);
|
||||
|
||||
/*
|
||||
Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /room/roomToken/public
|
||||
*/
|
||||
@DELETE
|
||||
Observable<Void> makeRoomPrivate(@Header("Authorization") String authorization, @Url String url);
|
||||
Observable<GenericOverall> makeRoomPrivate(@Header("Authorization") String authorization, @Url String url);
|
||||
|
||||
@DELETE
|
||||
Observable<GenericOverall> deleteRoom(@Header("Authorization") String authorization, @Url String url);
|
||||
|
||||
/*
|
||||
Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /call/callToken
|
||||
@ -238,4 +242,8 @@ public interface NcApi {
|
||||
@Url String url,
|
||||
@QueryMap Map<String, String> fields);
|
||||
|
||||
@PUT
|
||||
Observable<GenericOverall> setPassword(@Header("Authorization") String authorization, @Url String url,
|
||||
@Query("password") String password);
|
||||
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ public class ApiHelper {
|
||||
return retrofitBucket;
|
||||
}
|
||||
|
||||
public static String getUrlForRoom(String baseUrl, String token) {
|
||||
public static String getUrlForRoomParticipants(String baseUrl, String token) {
|
||||
return getRoom(baseUrl, token) + "/participants/active";
|
||||
}
|
||||
|
||||
@ -157,6 +157,10 @@ public class ApiHelper {
|
||||
return baseUrl + "/index.php/avatar/" + Uri.encode(name) + "/" + avatarSize;
|
||||
}
|
||||
|
||||
public static String getUrlForPassword(String baseUrl, String token) {
|
||||
return baseUrl + ocsApiVersion + spreedApiVersion + "/room/" + token + "/password";
|
||||
}
|
||||
|
||||
public static String getCredentials(String username, String token) {
|
||||
return Credentials.basic(username, token);
|
||||
}
|
||||
|
@ -62,6 +62,7 @@ public class Room {
|
||||
public boolean hasPassword;
|
||||
@JsonField(name = "sessionId")
|
||||
public String sessionId;
|
||||
public String password;
|
||||
|
||||
public boolean isPublic() {
|
||||
return (RoomType.ROOM_PUBLIC_CALL.equals(type));
|
||||
|
@ -58,9 +58,12 @@ import com.nextcloud.talk.api.helpers.api.ApiHelper;
|
||||
import com.nextcloud.talk.api.models.json.rooms.Room;
|
||||
import com.nextcloud.talk.application.NextcloudTalkApplication;
|
||||
import com.nextcloud.talk.controllers.base.BaseController;
|
||||
import com.nextcloud.talk.controllers.bottomsheet.CallMenuController;
|
||||
import com.nextcloud.talk.events.BottomSheetLockEvent;
|
||||
import com.nextcloud.talk.events.MoreMenuClickEvent;
|
||||
import com.nextcloud.talk.persistence.entities.UserEntity;
|
||||
import com.nextcloud.talk.utils.bundle.BundleBuilder;
|
||||
import com.nextcloud.talk.utils.bundle.BundleKeys;
|
||||
import com.nextcloud.talk.utils.database.user.UserUtils;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
@ -369,16 +372,32 @@ public class CallsListController extends BaseController implements SearchView.On
|
||||
return onQueryTextChange(query);
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onMessageEvent(BottomSheetLockEvent bottomSheetLockEvent) {
|
||||
if (bottomSheet != null) {
|
||||
if (!bottomSheetLockEvent.isCancel()) {
|
||||
bottomSheet.setCancelable(bottomSheetLockEvent.isCancel());
|
||||
} else {
|
||||
new Handler().postDelayed(() -> {
|
||||
bottomSheet.setCancelable(true);
|
||||
if (bottomSheet.isShowing()) {
|
||||
bottomSheet.cancel();
|
||||
}
|
||||
}, bottomSheetLockEvent.getDelay());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onMessageEvent(MoreMenuClickEvent moreMenuClickEvent) {
|
||||
BundleBuilder bundleBuilder = new BundleBuilder(new Bundle());
|
||||
Room room = moreMenuClickEvent.getRoom();
|
||||
bundleBuilder.putParcelable("room", Parcels.wrap(room));
|
||||
bundleBuilder.putParcelable(BundleKeys.KEY_ROOM, Parcels.wrap(room));
|
||||
|
||||
View view = getActivity().getLayoutInflater().inflate(R.layout.bottom_sheet, null, false);
|
||||
|
||||
getChildRouter((ViewGroup) view).setRoot(
|
||||
RouterTransaction.with(new RoomMenuController(bundleBuilder.build()))
|
||||
RouterTransaction.with(new CallMenuController(bundleBuilder.build()))
|
||||
.popChangeHandler(new HorizontalChangeHandler())
|
||||
.pushChangeHandler(new HorizontalChangeHandler()));
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.nextcloud.talk.controllers;
|
||||
package com.nextcloud.talk.controllers.bottomsheet;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
@ -29,17 +29,23 @@ import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.bluelinelabs.conductor.RouterTransaction;
|
||||
import com.nextcloud.talk.R;
|
||||
import com.nextcloud.talk.adapters.items.MenuItem;
|
||||
import com.nextcloud.talk.api.models.json.rooms.Room;
|
||||
import com.nextcloud.talk.application.NextcloudTalkApplication;
|
||||
import com.nextcloud.talk.controllers.base.BaseController;
|
||||
import com.nextcloud.talk.events.BottomSheetLockEvent;
|
||||
import com.nextcloud.talk.utils.bundle.BundleKeys;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.parceler.Parcels;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import autodagger.AutoInjector;
|
||||
import butterknife.BindView;
|
||||
import eu.davidea.flexibleadapter.FlexibleAdapter;
|
||||
@ -47,21 +53,25 @@ import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager;
|
||||
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
|
||||
|
||||
@AutoInjector(NextcloudTalkApplication.class)
|
||||
public class RoomMenuController extends BaseController implements FlexibleAdapter.OnItemClickListener {
|
||||
public class CallMenuController extends BaseController implements FlexibleAdapter.OnItemClickListener {
|
||||
@BindView(R.id.recycler_view)
|
||||
RecyclerView recyclerView;
|
||||
|
||||
@Inject
|
||||
EventBus eventBus;
|
||||
|
||||
private Room room;
|
||||
private List<AbstractFlexibleItem> menuItems;
|
||||
private FlexibleAdapter<AbstractFlexibleItem> adapter;
|
||||
|
||||
public RoomMenuController(Bundle args) {
|
||||
public CallMenuController(Bundle args) {
|
||||
super(args);
|
||||
this.room = Parcels.unwrap(args.getParcelable("room"));
|
||||
this.room = Parcels.unwrap(args.getParcelable(BundleKeys.KEY_ROOM));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected View inflateView(@NonNull LayoutInflater inflater, @NonNull ViewGroup container) {
|
||||
return inflater.inflate(R.layout.controller_room_menu, container, false);
|
||||
return inflater.inflate(R.layout.controller_call_menu, container, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -93,37 +103,52 @@ public class RoomMenuController extends BaseController implements FlexibleAdapte
|
||||
private void prepareMenu() {
|
||||
menuItems = new ArrayList<>();
|
||||
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_what)));
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_what), 0));
|
||||
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_leave)));
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_leave), 1));
|
||||
|
||||
if (room.isNameEditable()) {
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_rename)));
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_rename), 2));
|
||||
}
|
||||
|
||||
if (!room.isPublic()) {
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_make_call_public)));
|
||||
} else {
|
||||
if (room.isHasPassword()) {
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_change_password)));
|
||||
if (room.canModerate()) {
|
||||
if (!room.isPublic()) {
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_make_call_public), 3));
|
||||
} else {
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_set_password)));
|
||||
if (room.isHasPassword()) {
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_change_password), 4));
|
||||
} else {
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_set_password), 5));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_share_link)));
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_stop_sharing)));
|
||||
|
||||
if (room.isPublic()) {
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_share_link), 6));
|
||||
if (room.canModerate()) {
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_make_call_private), 7));
|
||||
}
|
||||
}
|
||||
|
||||
if (room.isDeletable()) {
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_delete_call)));
|
||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_delete_call), 8));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onItemClick(int position) {
|
||||
if (menuItems.size() > position && position != 0) {
|
||||
MenuItem menuItem = (MenuItem) menuItems.get(position);
|
||||
MenuItem menuItem = (MenuItem) adapter.getItem(position);
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable(BundleKeys.KEY_ROOM, Parcels.wrap(room));
|
||||
if (menuItem != null) {
|
||||
int tag = menuItem.getTag();
|
||||
if (tag > 0 && tag < 9) {
|
||||
eventBus.post(new BottomSheetLockEvent(false, 0));
|
||||
bundle.putInt(BundleKeys.KEY_OPERATION_CODE, tag);
|
||||
if (tag != 6 && tag != 2) {
|
||||
getRouter().pushController(RouterTransaction.with(new OperationsMenuController(bundle)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
@ -0,0 +1,234 @@
|
||||
/*
|
||||
* Nextcloud Talk application
|
||||
*
|
||||
* @author Mario Danic
|
||||
* Copyright (C) 2017 Mario Danic <mario@lovelyhq.com>
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.nextcloud.talk.controllers.bottomsheet;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.nextcloud.talk.R;
|
||||
import com.nextcloud.talk.api.NcApi;
|
||||
import com.nextcloud.talk.api.helpers.api.ApiHelper;
|
||||
import com.nextcloud.talk.api.models.json.rooms.Room;
|
||||
import com.nextcloud.talk.application.NextcloudTalkApplication;
|
||||
import com.nextcloud.talk.controllers.base.BaseController;
|
||||
import com.nextcloud.talk.events.BottomSheetLockEvent;
|
||||
import com.nextcloud.talk.models.RetrofitBucket;
|
||||
import com.nextcloud.talk.persistence.entities.UserEntity;
|
||||
import com.nextcloud.talk.utils.ColorUtils;
|
||||
import com.nextcloud.talk.utils.bundle.BundleKeys;
|
||||
import com.nextcloud.talk.utils.database.user.UserUtils;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.parceler.Parcels;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import autodagger.AutoInjector;
|
||||
import butterknife.BindView;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
@AutoInjector(NextcloudTalkApplication.class)
|
||||
public class OperationsMenuController extends BaseController {
|
||||
@BindView(R.id.progress_bar)
|
||||
ProgressBar progressBar;
|
||||
|
||||
@BindView(R.id.result_image_view)
|
||||
ImageView resultImageView;
|
||||
|
||||
@BindView(R.id.result_text_view)
|
||||
TextView resultsTextView;
|
||||
|
||||
@BindView(R.id.ok_button)
|
||||
Button okButton;
|
||||
|
||||
@Inject
|
||||
NcApi ncApi;
|
||||
|
||||
@Inject
|
||||
UserUtils userUtils;
|
||||
|
||||
@Inject
|
||||
EventBus eventBus;
|
||||
|
||||
private int operationCode;
|
||||
private Room room;
|
||||
|
||||
private Disposable disposable;
|
||||
|
||||
private int retryCount = 0;
|
||||
|
||||
public OperationsMenuController(Bundle args) {
|
||||
super(args);
|
||||
this.operationCode = args.getInt(BundleKeys.KEY_OPERATION_CODE);
|
||||
this.room = Parcels.unwrap(args.getParcelable(BundleKeys.KEY_ROOM));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected View inflateView(@NonNull LayoutInflater inflater, @NonNull ViewGroup container) {
|
||||
return inflater.inflate(R.layout.controller_operations_menu, container, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onViewBound(@NonNull View view) {
|
||||
super.onViewBound(view);
|
||||
NextcloudTalkApplication.getSharedApplication().getComponentApplication().inject(this);
|
||||
|
||||
processOperation();
|
||||
}
|
||||
|
||||
private void processOperation() {
|
||||
UserEntity userEntity = userUtils.getCurrentUser();
|
||||
OperationsObserver operationsObserver = new OperationsObserver();
|
||||
if (userEntity != null) {
|
||||
String credentials = ApiHelper.getCredentials(userEntity.getUsername(), userEntity.getToken());
|
||||
switch (operationCode) {
|
||||
case 1:
|
||||
ncApi.removeSelfFromRoom(credentials, ApiHelper.getUrlForRemoveSelfFromRoom(userEntity.getBaseUrl
|
||||
(), room.getToken()))
|
||||
.subscribeOn(Schedulers.newThread())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.retry(1)
|
||||
.subscribe(operationsObserver);
|
||||
break;
|
||||
case 2:
|
||||
RetrofitBucket retrofitBucket = ApiHelper.getRetrofitBucketForRenameRoom(userEntity.getBaseUrl(),
|
||||
room.getToken(), room.getName());
|
||||
ncApi.renameRoom(credentials, retrofitBucket.getUrl(), retrofitBucket.getQueryMap())
|
||||
.subscribeOn(Schedulers.newThread())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.retry(1)
|
||||
.subscribe(operationsObserver);
|
||||
break;
|
||||
case 3:
|
||||
ncApi.makeRoomPublic(credentials, ApiHelper.getUrlForRoomVisibility(userEntity.getBaseUrl(), room
|
||||
.getToken()))
|
||||
.subscribeOn(Schedulers.newThread())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.retry(1)
|
||||
.subscribe(operationsObserver);
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
String pass = "";
|
||||
if (room.getPassword() != null) {
|
||||
pass = room.getPassword();
|
||||
}
|
||||
ncApi.setPassword(credentials, ApiHelper.getUrlForPassword(userEntity.getBaseUrl(),
|
||||
room.getToken()), pass)
|
||||
.subscribeOn(Schedulers.newThread())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.retry(1)
|
||||
.subscribe(operationsObserver);
|
||||
break;
|
||||
case 6:
|
||||
// Operation 6 is sharing, so we handle this differently
|
||||
break;
|
||||
case 7:
|
||||
ncApi.makeRoomPrivate(credentials, ApiHelper.getUrlForRoomVisibility(userEntity.getBaseUrl(), room
|
||||
.getToken()))
|
||||
.subscribeOn(Schedulers.newThread())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.retry(1)
|
||||
.subscribe(operationsObserver);
|
||||
break;
|
||||
case 8:
|
||||
ncApi.deleteRoom(credentials, ApiHelper.getUrlForRoomParticipants(userEntity.getBaseUrl(), room.getToken()))
|
||||
.subscribeOn(Schedulers.newThread())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.retry(1)
|
||||
.subscribe(operationsObserver);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void showResultImage(boolean everythingOK) {
|
||||
progressBar.setVisibility(View.GONE);
|
||||
resultImageView.setVisibility(View.VISIBLE);
|
||||
|
||||
if (everythingOK) {
|
||||
resultsTextView.setText(R.string.nc_all_ok_operation);
|
||||
} else {
|
||||
resultsTextView.setText(R.string.nc_failed_to_perform_operation);
|
||||
}
|
||||
|
||||
resultsTextView.setVisibility(View.VISIBLE);
|
||||
if (everythingOK) {
|
||||
eventBus.post(new BottomSheetLockEvent(true, 2500));
|
||||
} else {
|
||||
okButton.setOnClickListener(v -> eventBus.post(new BottomSheetLockEvent(true, 0)));
|
||||
okButton.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
private void dispose() {
|
||||
if (disposable != null && !disposable.isDisposed()) {
|
||||
disposable.dispose();
|
||||
}
|
||||
|
||||
disposable = null;
|
||||
}
|
||||
|
||||
private class OperationsObserver implements Observer {
|
||||
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
disposable = d;
|
||||
retryCount++;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(Object o) {
|
||||
resultImageView.setImageDrawable(ColorUtils.getTintedDrawable(getResources(), R.drawable
|
||||
.ic_check_circle_black_24dp, R.color.nc_darkGreen));
|
||||
showResultImage(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
if (retryCount == 1) {
|
||||
resultImageView.setImageDrawable(ColorUtils.getTintedDrawable(getResources(), R.drawable
|
||||
.ic_cancel_black_24dp, R.color.nc_darkRed));
|
||||
showResultImage(false);
|
||||
}
|
||||
dispose();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
dispose();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Nextcloud Talk application
|
||||
*
|
||||
* @author Mario Danic
|
||||
* Copyright (C) 2017 Mario Danic <mario@lovelyhq.com>
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.nextcloud.talk.events;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class BottomSheetLockEvent {
|
||||
private final boolean cancel;
|
||||
private final int delay;
|
||||
|
||||
public BottomSheetLockEvent(boolean cancel, int delay) {
|
||||
this.cancel = cancel;
|
||||
this.delay = delay;
|
||||
}
|
||||
}
|
@ -24,6 +24,8 @@ public class BundleKeys {
|
||||
public static final String KEY_USERNAME = "KEY_USERNAME";
|
||||
public static final String KEY_TOKEN = "KEY_TOKEN";
|
||||
public static final String KEY_BASE_URL = "KEY_BASE_URL";
|
||||
public static final String KEY_IS_ACCOUNT_IMPORT = "IS_ACCOUNT_IMPORT";
|
||||
public static final String KEY_ORIGINAL_PROTOCOL = "ORIGINAL_PROTOCOL";
|
||||
public static final String KEY_IS_ACCOUNT_IMPORT = "KEY_IS_ACCOUNT_IMPORT";
|
||||
public static final String KEY_ORIGINAL_PROTOCOL = "KEY_ORIGINAL_PROTOCOL";
|
||||
public static final String KEY_ROOM = "KEY_ROOM";
|
||||
public static final String KEY_OPERATION_CODE = "KEY_OPERATION_CODE";
|
||||
}
|
||||
|
25
app/src/main/res/drawable/ic_cancel_black_24dp.xml
Normal file
25
app/src/main/res/drawable/ic_cancel_black_24dp.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<!--
|
||||
~ Nextcloud Talk application
|
||||
~
|
||||
~ @author Mario Danic
|
||||
~ Copyright (C) 2017 Mario Danic <mario@lovelyhq.com>
|
||||
~
|
||||
~ 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<vector android:autoMirrored="true" android:height="24dp"
|
||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#FF000000" android:pathData="M12,2C6.47,2 2,6.47 2,12s4.47,10 10,10 10,-4.47 10,-10S17.53,2 12,2zM17,15.59L15.59,17 12,13.41 8.41,17 7,15.59 10.59,12 7,8.41 8.41,7 12,10.59 15.59,7 17,8.41 13.41,12 17,15.59z"/>
|
||||
</vector>
|
25
app/src/main/res/drawable/ic_check_circle_black_24dp.xml
Normal file
25
app/src/main/res/drawable/ic_check_circle_black_24dp.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<!--
|
||||
~ Nextcloud Talk application
|
||||
~
|
||||
~ @author Mario Danic
|
||||
~ Copyright (C) 2017 Mario Danic <mario@lovelyhq.com>
|
||||
~
|
||||
~ 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<vector android:autoMirrored="true" android:height="24dp"
|
||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#FF000000" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM10,17l-5,-5 1.41,-1.41L10,14.17l7.59,-7.59L19,8l-9,9z"/>
|
||||
</vector>
|
76
app/src/main/res/layout/controller_operations_menu.xml
Normal file
76
app/src/main/res/layout/controller_operations_menu.xml
Normal file
@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Nextcloud Talk application
|
||||
~
|
||||
~ @author Mario Danic
|
||||
~ Copyright (C) 2017 Mario Danic <mario@lovelyhq.com>
|
||||
~
|
||||
~ 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/nc_white_color">
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progress_bar"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginTop="24dp"
|
||||
android:indeterminate="true"
|
||||
android:indeterminateTint="@color/colorPrimary"
|
||||
android:indeterminateTintMode="src_in"
|
||||
android:keepScreenOn="true"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/result_image_view"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:layout_marginEnd="24dp"
|
||||
android:layout_marginStart="24dp"
|
||||
android:layout_marginTop="24dp"
|
||||
android:tintMode="src_in"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/result_text_view"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/result_image_view"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginEnd="24dp"
|
||||
android:layout_marginStart="24dp"
|
||||
android:maxLines="2"
|
||||
android:textAlignment="center"
|
||||
android:textColor="@color/colorPrimary"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/ok_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_below="@id/result_text_view"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:background="#0000"
|
||||
android:text="@string/nc_ok"
|
||||
android:textColor="@color/colorPrimary"
|
||||
android:visibility="gone"/>
|
||||
</RelativeLayout>
|
@ -22,7 +22,6 @@
|
||||
-->
|
||||
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/item_height">
|
||||
@ -71,7 +70,6 @@
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginEnd="@dimen/activity_horizontal_margin"
|
||||
android:layout_marginStart="@dimen/margin_between_elements"
|
||||
android:background="@drawable/ic_more_horiz_black_24dp"
|
||||
android:visibility="invisible"/>
|
||||
android:background="@drawable/ic_more_horiz_black_24dp"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
@ -28,7 +28,7 @@
|
||||
android:id="@+id/menu_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/margin_between_elements"
|
||||
android:layout_margin="16dp"
|
||||
android:textSize="12sp"/>
|
||||
|
||||
</RelativeLayout>
|
@ -76,7 +76,7 @@
|
||||
<string name="nc_change_password">Change the password</string>
|
||||
<string name="nc_share_link">Share link</string>
|
||||
<string name="nc_make_call_public">Make call public</string>
|
||||
<string name="nc_stop_sharing">Stop sharing the call</string>
|
||||
<string name="nc_make_call_private">Stop sharing the call</string>
|
||||
<string name="nc_delete_call">Delete call</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir liga</string>
|
||||
<string name="nc_make_call_public">Generar una llamada pública</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Borrar la llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -55,7 +55,7 @@
|
||||
<string name="nc_change_password">Skift kodeord</string>
|
||||
<string name="nc_share_link">Del link</string>
|
||||
<string name="nc_make_call_public">Lav et offentligt opkald</string>
|
||||
<string name="nc_stop_sharing">Stop deling af opkald</string>
|
||||
<string name="nc_make_call_private">Stop deling af opkald</string>
|
||||
<string name="nc_delete_call">Slet opkald</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -75,7 +75,7 @@
|
||||
<string name="nc_change_password">Passwort ändern</string>
|
||||
<string name="nc_share_link">Link teilen</string>
|
||||
<string name="nc_make_call_public">Anruf öffentlich machen</string>
|
||||
<string name="nc_stop_sharing">Teilen des Anrufs beenden</string>
|
||||
<string name="nc_make_call_private">Teilen des Anrufs beenden</string>
|
||||
<string name="nc_delete_call">Anruf löschen</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -75,7 +75,7 @@
|
||||
<string name="nc_change_password">Passwort ändern</string>
|
||||
<string name="nc_share_link">Link teilen</string>
|
||||
<string name="nc_make_call_public">Anruf öffentlich machen</string>
|
||||
<string name="nc_stop_sharing">Teilen des Anrufs beenden</string>
|
||||
<string name="nc_make_call_private">Teilen des Anrufs beenden</string>
|
||||
<string name="nc_delete_call">Anruf löschen</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir liga</string>
|
||||
<string name="nc_make_call_public">Generar una llamada pública</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Borrar la llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir liga</string>
|
||||
<string name="nc_make_call_public">Generar una llamada pública</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Borrar la llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir liga</string>
|
||||
<string name="nc_make_call_public">Generar una llamada pública</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Borrar la llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir liga</string>
|
||||
<string name="nc_make_call_public">Generar una llamada pública</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Borrar la llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir liga</string>
|
||||
<string name="nc_make_call_public">Generar una llamada pública</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Borrar la llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir liga</string>
|
||||
<string name="nc_make_call_public">Generar una llamada pública</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Borrar la llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir liga</string>
|
||||
<string name="nc_make_call_public">Generar una llamada pública</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Borrar la llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -75,7 +75,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir liga</string>
|
||||
<string name="nc_make_call_public">Generar una llamada pública</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Borrar la llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir liga</string>
|
||||
<string name="nc_make_call_public">Generar una llamada pública</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Borrar la llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir liga</string>
|
||||
<string name="nc_make_call_public">Generar una llamada pública</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Borrar la llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir liga</string>
|
||||
<string name="nc_make_call_public">Generar una llamada pública</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Borrar la llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir liga</string>
|
||||
<string name="nc_make_call_public">Generar una llamada pública</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Borrar la llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir liga</string>
|
||||
<string name="nc_make_call_public">Generar una llamada pública</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Borrar la llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir liga</string>
|
||||
<string name="nc_make_call_public">Generar una llamada pública</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Borrar la llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir liga</string>
|
||||
<string name="nc_make_call_public">Generar una llamada pública</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Borrar la llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -76,7 +76,7 @@
|
||||
<string name="nc_change_password">Cambiar la contraseña</string>
|
||||
<string name="nc_share_link">Compartir enlace</string>
|
||||
<string name="nc_make_call_public">Hacer pública la llamada</string>
|
||||
<string name="nc_stop_sharing">Dejar de compartir la llamada</string>
|
||||
<string name="nc_make_call_private">Dejar de compartir la llamada</string>
|
||||
<string name="nc_delete_call">Eliminar llamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -48,7 +48,7 @@
|
||||
<string name="nc_change_password">Vaihda salasana</string>
|
||||
<string name="nc_share_link">Jaa linkki</string>
|
||||
<string name="nc_make_call_public">Tee puhelusta julkinen</string>
|
||||
<string name="nc_stop_sharing">Lopeta puhelun jakaminen</string>
|
||||
<string name="nc_make_call_private">Lopeta puhelun jakaminen</string>
|
||||
<string name="nc_delete_call">Poista puhelu</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -76,7 +76,7 @@
|
||||
<string name="nc_change_password">Changer le mot de passe</string>
|
||||
<string name="nc_share_link">Partager par lien public</string>
|
||||
<string name="nc_make_call_public">Effectuer un appel public</string>
|
||||
<string name="nc_stop_sharing">Arrêter de partager l‘appel</string>
|
||||
<string name="nc_make_call_private">Arrêter de partager l‘appel</string>
|
||||
<string name="nc_delete_call">Supprimer l’appel</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -77,7 +77,7 @@
|
||||
<string name="nc_change_password">A jelszó módosítása</string>
|
||||
<string name="nc_share_link">Megosztás hivatkozása</string>
|
||||
<string name="nc_make_call_public">Hívás nyilvánossá tétele</string>
|
||||
<string name="nc_stop_sharing">Hívás megosztásának befejezése</string>
|
||||
<string name="nc_make_call_private">Hívás megosztásának befejezése</string>
|
||||
<string name="nc_delete_call">Hívás törlése</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -76,7 +76,7 @@
|
||||
<string name="nc_change_password">Cambia la password</string>
|
||||
<string name="nc_share_link">Condividi collegamento</string>
|
||||
<string name="nc_make_call_public">Rendi pubblica la chiamata</string>
|
||||
<string name="nc_stop_sharing">Interrompi la condivisione della chiamata</string>
|
||||
<string name="nc_make_call_private">Interrompi la condivisione della chiamata</string>
|
||||
<string name="nc_delete_call">Elimina chiamata</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -76,7 +76,7 @@
|
||||
<string name="nc_change_password">პაროლის ცვლილება</string>
|
||||
<string name="nc_share_link">ბმულის გაზიარება</string>
|
||||
<string name="nc_make_call_public">ღია ზარის წამოწყება</string>
|
||||
<string name="nc_stop_sharing">ზარის გაზიარების შეწყვეტა</string>
|
||||
<string name="nc_make_call_private">ზარის გაზიარების შეწყვეტა</string>
|
||||
<string name="nc_delete_call">ზარის გაუქმება</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -76,7 +76,7 @@
|
||||
<string name="nc_change_password">암호 변경</string>
|
||||
<string name="nc_share_link">링크 공유</string>
|
||||
<string name="nc_make_call_public">공개 통화로 전환</string>
|
||||
<string name="nc_stop_sharing">통화 공유 중지</string>
|
||||
<string name="nc_make_call_private">통화 공유 중지</string>
|
||||
<string name="nc_delete_call">통화 삭제</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -76,7 +76,7 @@
|
||||
<string name="nc_change_password">Endre passord</string>
|
||||
<string name="nc_share_link">Del lenke</string>
|
||||
<string name="nc_make_call_public">Gjør samtalen offentlig</string>
|
||||
<string name="nc_stop_sharing">Avslutt deling av samtale</string>
|
||||
<string name="nc_make_call_private">Avslutt deling av samtale</string>
|
||||
<string name="nc_delete_call">Slett samtale</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -77,7 +77,7 @@ Kies er eentje van een provider.</string>
|
||||
<string name="nc_change_password">Wijzig wachtwoord</string>
|
||||
<string name="nc_share_link">Deel link</string>
|
||||
<string name="nc_make_call_public">Maak gesprek openbaar</string>
|
||||
<string name="nc_stop_sharing">Stop delen van het gesprek</string>
|
||||
<string name="nc_make_call_private">Stop delen van het gesprek</string>
|
||||
<string name="nc_delete_call">Verwijder gesprek</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -76,7 +76,7 @@
|
||||
<string name="nc_change_password">Mudar a senha</string>
|
||||
<string name="nc_share_link">Compartilhar um link</string>
|
||||
<string name="nc_make_call_public">Fazer uma chamada pública</string>
|
||||
<string name="nc_stop_sharing">Parar de compartilhar a chamada</string>
|
||||
<string name="nc_make_call_private">Parar de compartilhar a chamada</string>
|
||||
<string name="nc_delete_call">Excluir a chamada</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -76,7 +76,7 @@
|
||||
<string name="nc_change_password">Сменить пароль</string>
|
||||
<string name="nc_share_link">Поделиться ссылкой</string>
|
||||
<string name="nc_make_call_public">Сделать звонок общедоступным</string>
|
||||
<string name="nc_stop_sharing">Закрыть общий доступ к звонку</string>
|
||||
<string name="nc_make_call_private">Закрыть общий доступ к звонку</string>
|
||||
<string name="nc_delete_call">Удалить звонок</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -68,7 +68,7 @@
|
||||
<string name="nc_change_password">Ndrysho fjalëkalimin</string>
|
||||
<string name="nc_share_link">Ndaj linkun</string>
|
||||
<string name="nc_make_call_public">Bëje thirrjen publike</string>
|
||||
<string name="nc_stop_sharing">Ndalo së ndari thirrjen</string>
|
||||
<string name="nc_make_call_private">Ndalo së ndari thirrjen</string>
|
||||
<string name="nc_delete_call">Fshi thirrjen</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -76,7 +76,7 @@
|
||||
<string name="nc_change_password">Измени лозинку</string>
|
||||
<string name="nc_share_link">Подели везу</string>
|
||||
<string name="nc_make_call_public">Учини разговор јавним</string>
|
||||
<string name="nc_stop_sharing">Заустави дељење разговора</string>
|
||||
<string name="nc_make_call_private">Заустави дељење разговора</string>
|
||||
<string name="nc_delete_call">Обриши позив</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -63,7 +63,7 @@
|
||||
<string name="nc_change_password">Byt lösenordet</string>
|
||||
<string name="nc_share_link">Dela länk</string>
|
||||
<string name="nc_make_call_public">Gör samtal offentligt</string>
|
||||
<string name="nc_stop_sharing">Stoppa delning av samtalet</string>
|
||||
<string name="nc_make_call_private">Stoppa delning av samtalet</string>
|
||||
<string name="nc_delete_call">Radera samtal</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -76,7 +76,7 @@
|
||||
<string name="nc_change_password">Parolayı değiştir</string>
|
||||
<string name="nc_share_link">Bağlantıyı paylaş</string>
|
||||
<string name="nc_make_call_public">Çağrıyı herkese aç</string>
|
||||
<string name="nc_stop_sharing">Çağrıyı paylaşmayı durdur</string>
|
||||
<string name="nc_make_call_private">Çağrıyı paylaşmayı durdur</string>
|
||||
<string name="nc_delete_call">Çağrıyı sil</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -69,7 +69,7 @@
|
||||
<string name="nc_change_password">更改密碼</string>
|
||||
<string name="nc_share_link">分享連結</string>
|
||||
<string name="nc_make_call_public">公開通話</string>
|
||||
<string name="nc_stop_sharing">停止分享通話</string>
|
||||
<string name="nc_make_call_private">停止分享通話</string>
|
||||
<string name="nc_delete_call">刪除通話</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
|
@ -5,6 +5,7 @@
|
||||
<color name="colorAccent">#007CC2</color>
|
||||
|
||||
<color name="nc_darkRed">#D32F2F</color>
|
||||
<color name="nc_darkGreen">#006400</color>
|
||||
<color name="nc_white_color">@color/per70white</color>
|
||||
<color name="nc_white_color_complete">#FFFFFF</color>
|
||||
<color name="nc_light_blue_color">#7FC0E3</color>
|
||||
|
@ -76,7 +76,7 @@
|
||||
<string name="nc_change_password">Change the password</string>
|
||||
<string name="nc_share_link">Share link</string>
|
||||
<string name="nc_make_call_public">Make call public</string>
|
||||
<string name="nc_stop_sharing">Stop sharing the call</string>
|
||||
<string name="nc_make_call_private">Make call private</string>
|
||||
<string name="nc_delete_call">Delete call</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
@ -101,4 +101,9 @@
|
||||
<string name="nc_notification_channel_calls_description">Shows incoming calls</string>
|
||||
<string name="nc_notification_channel_messages_description">Shows incoming messages</string>
|
||||
|
||||
<!-- Bottom sheet menu -->
|
||||
<string name="nc_failed_to_perform_operation">Sorry, something went wrong!</string>
|
||||
<string name="nc_all_ok_operation">OK, all done!</string>
|
||||
<string name="nc_ok">OK</string>
|
||||
|
||||
</resources>
|
||||
|
Loading…
Reference in New Issue
Block a user